<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>InfluxData Blog - Use Cases</title>
    <description>Posts from the Use Cases category on the InfluxData Blog</description>
    <link>https://www.influxdata.com/blog/category/usecase/</link>
    <language>en-us</language>
    <lastBuildDate>Thu, 25 Jun 2026 08:00:00 +0000</lastBuildDate>
    <pubDate>Thu, 25 Jun 2026 08:00:00 +0000</pubDate>
    <ttl>1800</ttl>
    <item>
      <title>How Mumu Migrated From Prometheus to InfluxDB and Tripled Their Metric Coverage</title>
      <description>&lt;p&gt;When a team uses an internal Slack channel for everything from contact form submissions to deployment alerts and server warnings, the notification engine quickly becomes critical infrastructure. When the same team builds that engine as a product for other teams to use, the bar gets even higher.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://usemumu.com/"&gt;Mumu&lt;/a&gt; is an all-in-one productivity platform for modern teams. While most companies stitch together separate SaaS tools for org charts, agile estimation, internal Q&amp;amp;A, skill mapping, recognition, and notifications, Mumu offers all of those as connected modules under a single subscription. The premise is that your organizational structure shouldn’t be replicated across five different databases; it should live in one place and flow into every workflow your team uses.&lt;/p&gt;

&lt;p&gt;In this blog, we will go over why the Mumu team rebuilt their monitoring stack on &lt;a href="https://www.influxdata.com/products/influxdb/?utm_source=website&amp;amp;utm_medium=direct&amp;amp;utm_campaign=core-ai-user-mumu&amp;amp;utm_content=blog"&gt;InfluxDB 3&lt;/a&gt; and how the migration went.&lt;/p&gt;

&lt;h2 id="why-pull-based-monitoring-stopped-making-sense"&gt;Why pull-based monitoring stopped making sense&lt;/h2&gt;

&lt;p&gt;Like many teams running their own infrastructure, Mumu started off using Prometheus as its primary monitoring solution. The main problem over time was the fundamental mismatch between Prometheus’s pull-based data collection model and the type of data Mumu was working with. Rather than telemetry data that can be scraped at a regular interval, Mumu often needs to track discrete events like user triggered actions, scripts completing, and a pipeline finishing. As a result, push-based delivery for tracking events made more sense.&lt;/p&gt;

&lt;p&gt;That architectural mismatch wasn’t the only problem. As Mumu evaluated alternatives like Betterstack, VictoriaMetrics, PostHog, Graphite, Datadog, and New Relic, issues related to transparency became a concern. Several of the SaaS solutions came with documentation that made it genuinely hard to understand what was happening under the hood, particularly around how metrics were ingested and stored. For a team that ships fast and needs to be able to debug its own pipeline, that was a dealbreaker.&lt;/p&gt;

&lt;h2 id="why-influxdb-3-was-the-right-option"&gt;Why InfluxDB 3 was the right option&lt;/h2&gt;

&lt;p&gt;Two things about InfluxDB stood out during evaluation. The first was that self-hosting was effortless. Mumu runs its own dedicated servers, and spinning up an InfluxDB 3 Core instance using the official Docker image took almost no time or configuration overhead.&lt;/p&gt;

&lt;p&gt;The second factor was the push-based HTTP API. &lt;a href="https://docs.influxdata.com/influxdb3/core/api/"&gt;InfluxDB’s Line Protocol HTTP API&lt;/a&gt; lets Mumu’s services emit metrics at the exact line of code where an event occurred with no sidecar, no exposition format, no scrape interval, just a POST request at the moment an event happened.&lt;/p&gt;

&lt;p&gt;In hindsight, the team’s biggest evaluation lesson was that they should have built a small proof of concept with InfluxDB earlier. The time spent evaluating other tools wasn’t wasted as it gave them context and confidence in the final decision, but InfluxDB’s simplicity would have been apparent within an afternoon.&lt;/p&gt;

&lt;h2 id="migration-process"&gt;Migration process&lt;/h2&gt;

&lt;p&gt;The migration involved three phases over a 3-month period: dual writing to InfluxDB and the existing Prometheus setup, validation, and finally, decommissioning the Prometheus infrastructure.&lt;/p&gt;

&lt;h4 id="phase-1-dual-writing-via-vector"&gt;Phase 1: Dual-Writing via Vector&lt;/h4&gt;

&lt;p&gt;The first move was to make the same metrics flow into both systems at once. Mumu added InfluxDB as a second sink alongside Prometheus in their existing Vector pipeline, so every metric was being written to both simultaneously. That parallel run is what made the eventual cutover risk-free by allowing the team to confirm performance and validate both systems against each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Migrating to InfluxDB is made easy using AI agents.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;About 80% of the migration work, such as Vector configuration changes, the dual-write sink setup, and the boilerplate around the new HTTP drivers in Go and TypeScript, was  generated by coding agents.&lt;/p&gt;

&lt;p&gt;A migration becomes a lot less daunting when the routine work compresses into hours, but what really made this work was what the agent had to work with on the InfluxDB side. InfluxDB 3 exposes a full REST API with a published &lt;a href="https://docs.influxdata.com/influxdb3/enterprise/api/"&gt;OpenAPI specification&lt;/a&gt;. When an AI agent can read that contract directly, it doesn’t have to guess at parameter names from stale blog posts or hallucinate endpoint shapes from vague documentation. It reads the spec, generates correct client code, and gets the integration right on the first pass. InfluxDB also has an &lt;a href="https://docs.influxdata.com/influxdb3/enterprise/admin/mcp-server/"&gt;MCP server&lt;/a&gt; for integrating with AI agents, although it wasn’t used by Mumu.&lt;/p&gt;

&lt;p&gt;This is an important property in a world where agents are doing more and more of the integration work. The systems that will be easiest to adopt over the next few years are not necessarily the ones with the most features, they’re the ones whose APIs are legible to machines.&lt;/p&gt;

&lt;h4 id="phase-2-validation"&gt;Phase 2: Validation&lt;/h4&gt;

&lt;p&gt;Running two systems in parallel only helps if you actually compare them, and this is where the team spent its caution wisely. The validation approach was deliberately simple: they duplicated their Grafana panels side by side, with one panel pulling from Prometheus and an identical panel pulling from InfluxDB. When two panels showing the same metric look identical for weeks on end, confidence accumulates quickly.&lt;/p&gt;

&lt;p&gt;Beyond visual parity, four things got specific attention:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Retention policies&lt;/strong&gt;: Confirming data was being stored at the right granularity and for the expected duration.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tag cardinality&lt;/strong&gt;: Making sure the tagging strategy wouldn’t cause write-performance problems at scale. Keeping cardinality low on high-volume metric streams is a lesson the team internalized early.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Batch write behavior&lt;/strong&gt;: Validating that the NestJS batching logic produced correct time series data with no gaps or duplicates.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dashboard parity&lt;/strong&gt;: Rebuilding key Grafana dashboards from scratch against InfluxDB to confirm they told the same story as their Prometheus equivalents.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id="phase-3-cutover"&gt;Phase 3: Cutover&lt;/h4&gt;

&lt;p&gt;Because Mumu’s Go and TypeScript codebases already had proper abstractions and interfaces for metric delivery, writing a new driver that sent metrics to InfluxDB via the HTTP API required almost no changes to the application code. The abstraction layer in their app code meant that swapping the metrics backend was a contained, well-scoped task rather than a sprawling refactor.&lt;/p&gt;

&lt;p&gt;The TypeScript driver came in at around 160 lines of code, largely because the team leaned on the official InfluxDB 3 client library package. The Go implementation was slightly longer due to manual HTTP handling, retry logic, and error handling, but was still a straightforward, bounded piece of work. Once the drivers were in place, the team decommissioned Prometheus for business metrics and declared the migration complete.&lt;/p&gt;

&lt;h2 id="benefits-of-influxdb-3from-150-to-560-metrics"&gt;Benefits of InfluxDB 3—from 150 to 560 metrics&lt;/h2&gt;

&lt;p&gt;Before InfluxDB, Mumu collected around 150 metrics. Today, they collect 560 metrics, and that number is constantly increasing.&lt;/p&gt;

&lt;p&gt;That growth didn’t come from a dedicated instrumentation initiative. There was no mandate, no quarter-long observability push, it happened organically because &lt;strong&gt;adding a new metric became a one-line HTTP call&lt;/strong&gt;. When friction drops that far, engineers instrument things they would previously have skipped.&lt;/p&gt;

&lt;p&gt;The number is less a measure of throughput than a measure of how much the team’s relationship with its own data changed once the cost of asking a question fell to nearly zero. And because metric delivery was suddenly cheap, Mumu started instrumenting things that would have seemed impractical before:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Operational automation&lt;/strong&gt;: Mumu sends a metric for every command executed on their servers, with automations built on top using MsgGO, and certain commands automatically trigger a Slack alert. The result is passive visibility into operational activity with no manual reporting required.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;CI/CD observability&lt;/strong&gt;: They emit metrics from their Bitbucket pipelines, including how long each pipeline runs. Over time, this has established a baseline for normal build duration, making regressions easy to spot.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Per-developer environments&lt;/strong&gt;: Every developer tags their metrics with an &lt;code class="language-markup"&gt;env&lt;/code&gt; field set to their local environment name, such as &lt;code class="language-markup"&gt;local:john&lt;/code&gt;, &lt;code class="language-markup"&gt;local:kate&lt;/code&gt;, and so on. Each developer can observe their own environment in Grafana, test new instrumentation locally before it ships, and build personal dashboards, all without polluting shared production data.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;General script instrumentation&lt;/strong&gt;: Bash scripts, custom CLI commands, and database migration durations during deployments are all now tracked, where before each would have demanded disproportionate effort.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="sql-on-time-series-data"&gt;SQL on time series data&lt;/h2&gt;

&lt;p&gt;Volume was not the only shift. InfluxDB 3’s SQL support meaningfully improved Mumu’s ability to build dashboards and debug metric data. Before the migration, querying time series data meant learning a specialized query language and reasoning about its particular semantics. With SQL, any engineer on the team can write an ad-hoc query to investigate a metric anomaly, validate that a new event is being tracked correctly, or prototype a Grafana panel without consulting documentation.&lt;/p&gt;

&lt;p&gt;The qualitative win is harder to put a number on, but is equally important: the metrics are now trusted. Engineering time that used to go into questioning whether a dashboard was telling the truth now goes into acting on what it shows.&lt;/p&gt;

&lt;h2 id="architecture-overview"&gt;Architecture overview&lt;/h2&gt;

&lt;p&gt;Mumu runs entirely on its own dedicated servers, giving the team full control, room for hardware-level optimization, and predictable costs. The application layer runs on Docker, with services written in Go and NestJS; Go handles core infrastructure-level work while NestJS handles application layer operations.&lt;/p&gt;

&lt;p&gt;Metrics reach InfluxDB along two paths. Vector collects and transforms log-based metrics from the server environment and forwards them to InfluxDB. The Go and NestJS services send business and application metrics directly over the HTTP API.&lt;/p&gt;

&lt;p&gt;The tagging strategy reflects that split. Server-level and infrastructure metrics carry richer tag sets like &lt;code class="language-markup"&gt;env&lt;/code&gt;, &lt;code class="language-markup"&gt;container&lt;/code&gt;, &lt;code class="language-markup"&gt;process_name&lt;/code&gt;, &lt;code class="language-markup"&gt;process_instance&lt;/code&gt;, and &lt;code class="language-markup"&gt;service&lt;/code&gt;. Business and application metrics are tagged more lightly, typically just &lt;code class="language-markup"&gt;env&lt;/code&gt; plus a small number of domain-specific identifiers. On the NestJS side, metrics are batched and flushed either every 60 seconds or when the batch size crosses a configured threshold, which is a configuration the team continues to tune to balance data freshness against RAM usage and write overhead. Grafana sits on top of it all, querying InfluxDB directly.&lt;/p&gt;

&lt;h2 id="future-plans-for-utilizing-influxdb-3"&gt;Future plans for utilizing InfluxDB 3&lt;/h2&gt;

&lt;p&gt;For Mumu, InfluxDB has unlocked more than just an internal observability story. The team is now actively building toward making it a first-class part of their product surface.&lt;/p&gt;

&lt;p&gt;The most immediate project is integrating InfluxDB as a delivery target inside MsgGO. Today, MsgGO routes messages to Slack, Telegram, Discord, Email, SMS, and Webhooks. Adding InfluxDB as a target means any system already sending events through MsgGO like  contact forms, deployment notifications, server alerts, and application events, can now route structured event data directly into InfluxDB with no additional integration work. Since Mumu uses MsgGO heavily inside its own infrastructure, this would pay off immediately in its own workflows, with the customer-facing benefits coming close behind.&lt;/p&gt;

&lt;p&gt;Further out, the team is evaluating whether to move user-activity statistics that are currently kept as activity records in a NoSQL database into InfluxDB. That data is inherently time series in nature, and putting it in InfluxDB would let them expose richer usage analytics inside the Mumu dashboard without needing a separate query infrastructure. And they want to lean on InfluxDB’s SQL interface to drive product decisions, using internal usage metrics to understand which modules see the most engagement, where users drop off, and how feature adoption shifts after a release.&lt;/p&gt;
</description>
      <pubDate>Thu, 25 Jun 2026 08:00:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/core-ai-user-mumu/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/core-ai-user-mumu/</guid>
      <category>Developer</category>
      <category>Use Cases</category>
      <author>Charles Mahler (InfluxData)</author>
    </item>
    <item>
      <title>Community Spotlight: A Native iOS App for Your InfluxDB Data</title>
      <description>&lt;p&gt;One of the things we love most about building an open source platform is seeing what the community creates with it, and independent developer Anton Havekes recently built something we just had to share.&lt;/p&gt;

&lt;p&gt;Anton put together Influx Dashboard, a native iOS app that connects to your InfluxDB instance and brings your time series data straight to your phone. We’re genuinely thrilled to see this kind of work come out of the community.&lt;/p&gt;

&lt;p&gt;A quick note before we dive in: this is entirely Anton’s project, built and published by him. InfluxData has no commercial relationship or financial stake in the app. We’re sharing it simply because we think it’s a great piece of community work and because surfacing what people build on 
InfluxDB is something we’ll always make time for. So, thank you, Anton, for the awesome work you’ve done!&lt;/p&gt;

&lt;p&gt;Here’s how it works.&lt;/p&gt;

&lt;h2 id="what-is-influx-dashboard"&gt;What is Influx Dashboard?&lt;/h2&gt;

&lt;p&gt;Influx Dashboard is a mobile-first visualization tool for InfluxDB. It supports InfluxDB versions 1, 2, and 3—including Core, Enterprise, and Cloud editions—and gives you a full-featured charting experience on your phone.&lt;/p&gt;

&lt;p&gt;Think of it as the community-built, mobile companion to the InfluxDB 3 Explorer UI. Instead of opening a browser on your laptop, you open an app. Instead of sitting at a desk, you monitor your data from wherever you are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key features include&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Real-time line, bar, gauge, and pie charts&lt;/li&gt;
  &lt;li&gt;Support for SQL queries&lt;/li&gt;
  &lt;li&gt;An intuitive drag-and-drop dashboard builder&lt;/li&gt;
  &lt;li&gt;Direct, secure connections to your InfluxDB server&lt;/li&gt;
  &lt;li&gt;Works with any kind of time series data: server metrics, IoT sensors, weather stations, factory equipment, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id="step-1-download-the-app"&gt;Step 1: Download the App&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://apps.apple.com/my/app/influxdb-dashboard/id6752961593/?utm_source=website&amp;amp;utm_medium=direct&amp;amp;utm_campaign=native_ios_app_influxdb&amp;amp;utm_content=blog"&gt;Influx Dashboard &lt;/a&gt;is available on the Apple App Store for $4.99 (&lt;em&gt;InfluxData is not commercially affiliated with this app and receives no proceeds from purchases&lt;/em&gt;). Once downloaded, open the app, and you’ll be ready to connect to your InfluxDB server.&lt;/p&gt;

&lt;h4 id="step-2-connect-to-your-influxdb-server"&gt;Step 2: Connect to Your InfluxDB Server&lt;/h4&gt;

&lt;p&gt;Before you can see any data, you’ll need to connect the app to your InfluxDB instance. Tap &lt;strong&gt;Add Server&lt;/strong&gt; on the main screen.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/3hQWngutz4GY8QNv6uyjgS/87da5c5b010f003c6a1f0861df0ace93/Screenshot_2026-05-18_at_6.15.05%C3%A2__PM.png" alt="Add Server SS" /&gt;&lt;/p&gt;

&lt;p&gt;You’ll need a few things from your InfluxDB setup:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Server URL&lt;/strong&gt;: the address of your InfluxDB instance
&lt;br /&gt;
&lt;strong&gt;API Token&lt;/strong&gt;: your authentication token (found in InfluxDB under Management → Tokens)&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/dcutoRtpfGIu00Slms5Fd/8021f045a1c53b96cf2c24cb4c152d91/Screenshot_2026-05-18_at_6.16.14%C3%A2__PM.png" alt="Add connection SS" /&gt;&lt;/p&gt;

&lt;p&gt;If you’re using InfluxDB Cloud, your server URL will look something like https://us-east-1-1.aws.cloud2.influxdata.com. If you’re connecting to a self-hosted instance, your admin can provide the URL and token.&lt;/p&gt;

&lt;p&gt;Once connected, the app loads your available databases, and you’re ready to build your first dashboard.&lt;/p&gt;

&lt;h4 id="step-3-build-your-dashboard"&gt;Step 3: Build Your Dashboard&lt;/h4&gt;

&lt;p&gt;Tap &lt;strong&gt;+ New Dashboard&lt;/strong&gt; and give it a name. Then tap &lt;strong&gt;Add Chart&lt;/strong&gt; to create your first visualization.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/1B6ETKSLXwJCs2jzeuwGQC/e826bab20bb4f4fa715a91c71516a5a2/Screenshot_2026-05-18_at_6.17.07%C3%A2__PM.png" alt="Dashboard SS" /&gt;&lt;/p&gt;

&lt;p&gt;The chart builder is straightforward, even if you’ve never written a database query before. You’ll see options for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chart Title&lt;/strong&gt;: give your chart a descriptive name
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chart Type&lt;/strong&gt;: choose from line, bar, gauge, or pie
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Database&lt;/strong&gt;: select which InfluxDB database to query
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table&lt;/strong&gt;: select the specific measurement or table within that database
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Column&lt;/strong&gt;: choose which field to visualize
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time Range&lt;/strong&gt;: pick how far back to look (last hour, last 24 hours, last 7 days, and more)
&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aggregation Window&lt;/strong&gt;: control how data points are grouped over time to smooth out your chart&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/2FDOkfwPkGZDLpWXOQ5FSk/01ed0425626c8fd830c1b07905ce967a/Screenshot_2026-05-18_at_6.18.31%C3%A2__PM.png" alt="Add chart" /&gt;&lt;/p&gt;

&lt;h4 id="step-4-query-your-data"&gt;Step 4: Query Your Data&lt;/h4&gt;

&lt;p&gt;One of the things that makes Influx Dashboard powerful is that it works with virtually any kind of time series data. During our testing, we connected to several different databases, each representing a completely different real-world use case:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Server monitoring&lt;/strong&gt;: CPU usage and memory metrics from a live server, showing system health at a glance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Industrial IoT&lt;/strong&gt;: Factory sensor data streamed via MQTT, the kind of data you’d see in a manufacturing or industrial environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weather stations&lt;/strong&gt;: Real-time weather observations, including temperature, humidity, wind speed, and barometric pressure, from stations across multiple locations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Personal IoT sensors&lt;/strong&gt;: A live “feels like” temperature sensor from a personal weather station in Holualoa, Hawaii.&lt;/p&gt;

&lt;p&gt;The app handled all of them identically: same interface, same workflow, completely different data. That versatility is one of Influx Dashboard’s biggest strengths.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/6G80coiqxe3zeQQ7hv7cLr/5544e92c8c5c0741a15dedfd75653f60/Screenshot_2026-05-18_at_6.20.00%C3%A2__PM.png" alt="My dashboard SS" /&gt;&lt;/p&gt;

&lt;h4 id="step-5-explore-your-charts"&gt;Step 5: Explore Your Charts&lt;/h4&gt;

&lt;p&gt;Once your charts are built, they appear on your dashboard and refresh automatically with live data.&lt;/p&gt;

&lt;p&gt;Tap any chart to expand it to full screen for a closer look. From the full-screen view, you can inspect trends, zoom in on specific time windows, and get a clearer picture of what your data is doing.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/4Hu37Ctx8z9pi28QIwHpL7/fc2ca446e87c2621ab106f02cca6deec/Screenshot_2026-05-18_at_6.20.40%C3%A2__PM.png" alt="Weather temperature SS" /&gt;&lt;/p&gt;

&lt;p&gt;Use the time range selector at the top of the dashboard to zoom in or out, from the last hour to the last 30 days. This is especially useful when you’re looking for a specific event or trying to understand a longer trend.&lt;/p&gt;

&lt;h4 id="step-6-manage-your-servers"&gt;Step 6: Manage Your Servers&lt;/h4&gt;

&lt;p&gt;From the Settings screen, you can manage your server connections, add new servers, or update your credentials. If your organization uses multiple InfluxDB instances, for example, a production server and a staging server, you can easily switch between them. You can also rename or delete servers you no longer need, keeping your workspace clean as your infrastructure evolves.&lt;/p&gt;

&lt;h2 id="why-this-matters"&gt;Why this matters&lt;/h2&gt;

&lt;p&gt;DevOps engineers, IoT developers, data engineers, and system administrators often need visibility into their time series data when they’re nowhere near a laptop, from a factory floor, at a remote deployment, or just away from their desk. Influx Dashboard closes that gap. Not through an official InfluxData product, but through something a community member decided to go build.&lt;/p&gt;

&lt;p&gt;That’s exactly the kind of activity an open source ecosystem should produce, and it’s exactly why we wanted to share it.&lt;/p&gt;

&lt;h2 id="get-started"&gt;Get started&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://apps.apple.com/my/app/influxdb-dashboard/id6752961593/?utm_source=website&amp;amp;utm_medium=direct&amp;amp;utm_campaign=native_ios_app_influxdb&amp;amp;utm_content=blog"&gt;Download Influx Dashboard on the Apple App Store&lt;/a&gt; (&lt;em&gt;independently developed by Anton Havekes—InfluxData is not affiliated with this app and receives no proceeds from purchases)&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;Don’t have InfluxDB yet? Get started free with &lt;a href="https://www.influxdata.com/products/influxdb/?utm_source=website&amp;amp;utm_medium=direct&amp;amp;utm_campaign=native_ios_app_influxdb&amp;amp;utm_content=blog"&gt;InfluxDB 3 Core&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Explore the InfluxDB 3 Explorer UI at &lt;a href="https://docs.influxdata.com/influxdb3/explorer/release-notes/#Copyright"&gt;docs.influxdata.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Built something on InfluxDB you want to share? Join the conversation at the &lt;a href="https://www.influxdata.com/community/?utm_source=website&amp;amp;utm_medium=direct&amp;amp;utm_campaign=native_ios_app_influxdb&amp;amp;utm_content=blog"&gt;InfluxData Community Forums&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Tue, 19 May 2026 08:00:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/native-ios-app-influxdb/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/native-ios-app-influxdb/</guid>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Ashley Fowler (InfluxData)</author>
    </item>
    <item>
      <title>IoT Made Easy with Node-RED and InfluxDB</title>
      <description>&lt;p&gt;In this article you will learn about Node-RED, a popular tool for rapidly gluing together different types of hardware and software. You’ll learn about some of the core concepts of Node-RED and then learn how to make some &lt;a href="https://www.influxdata.com/glossary/edge-computing/"&gt;workflows like storing data from a sensor&lt;/a&gt; using an &lt;a href="https://www.influxdata.com/mqtt/"&gt;MQTT&lt;/a&gt; broker and InfluxDB.&lt;/p&gt;

&lt;div class="columns is-vcentered cta-box br-30 my-6 gap-40"&gt;
  &lt;div class="column is-ralative is-8 p-30"&gt;
    &lt;h2 class="text-46 is-navy has-text-weight-bold is-relative m-0 pb-30"&gt;Node-RED and InfluxDB for IoT webinar&lt;/h2&gt;
    &lt;a class="button is-gradient is-normal" href="https://www.influxdata.com/resources/iot-made-easy-node-red-influxdb/"&gt;Watch the webinar&lt;/a&gt;
  &lt;/div&gt;
  &lt;div class="column has-text-right is-ralative" style="overflow: hidden;"&gt;
    &lt;img class="is-hidden-mobile kubo-img" src="//images.ctfassets.net/o7xu9whrs0u9/7E42fAfYRAtZYmEMZhuJh/b0ced10cc75136c51948303b9aa4fdb3/kubo-grey.svg" alt="kubo" itemprop="image" title="kubo" /&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;What is Node-RED?&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://nodered.org"&gt;Node-RED&lt;/a&gt; is an open-source, low-code, visual programming tool based on the concept of &lt;a href="https://en.wikipedia.org/wiki/Flow-based_programming"&gt;flow-based&lt;/a&gt; development. The idea behind it is to make it very easy to connect APIs, hardware devices, and anything else accessible over some type of network connection.&lt;/p&gt;

&lt;p&gt;Node-RED provides a number of pre-built “nodes” which allow non-developers to create custom integrations and automations using a visual interface, while also allowing developers to write their own custom nodes using JavaScript or external service written in another language when needed. In many ways Node-RED can be seen as one of the earliest examples of the low-code movement that has been rising in popularity.&lt;/p&gt;

&lt;p&gt;Node-RED was initially developed by IBM and then contributed to the OpenJS foundation. Arguably the biggest strength of Node-RED is the ecosystem and community with over 14,000 stars on GitHub and a community library with over 3000 pre-built nodes and 2000 customizable flows that cover many common use cases.&lt;/p&gt;

&lt;p&gt;In short, the benefits of using a tool like Node-RED are:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;No reinventing the wheel - tons of pre-built functionality&lt;/li&gt;
 	&lt;li&gt;Huge community with solutions to many common problems available&lt;/li&gt;
 	&lt;li&gt;Easy to extend with custom functionality for your use case&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Node-RED core concepts&lt;/h2&gt;
&lt;p&gt;In this section I will cover a few of the main components of Node-RED that will help you hit the ground running.&lt;/p&gt;

&lt;h2&gt;Nodes&lt;/h2&gt;
&lt;p&gt;As you might expect based on the name,  nodes are an important part of Node-Red. They are the fundamental building blocks for everything you do when working with Node-Red. Nodes are triggered by either receiving a message object from a previous node or an external event like an HTTP request. The node processes the message or event and then passes it on to the next node.&lt;/p&gt;

&lt;p&gt;Here are a few of the most common and useful nodes provided by Node-RED:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;strong&gt;Inject&lt;/strong&gt; - The inject node allows you to manually start a flow by injecting a message payload. The payload can be a string, number, or object with multiple properties. This node can also be set to run at a set time or regular interval.&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;Change&lt;/strong&gt; - The change node is a nice alternative to writing a custom function to do basic transformations or modifications like adding or removing properties on the message object.&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;Debug&lt;/strong&gt; - The debug node can be used to help develop flows and find where any potential bugs are occurring. By default it will send the message payload to the debug sidebar but can also be customized to send different information and also print to the terminal where you started Node-RED.&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;Switch&lt;/strong&gt; - The switch node allows messages to be routed to different branches of a flow based on defined rules. For example, if you have a sensor detecting temperature you might want to create an alert based on a certain threshold. If the temperature isn't over that threshold you can end the flow.&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;Function&lt;/strong&gt; - The function node allows you to write custom JavaScript code for use cases where the pre-built nodes provided by Node-RED don't support your use case&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Beyond these nodes, there are a number of other nodes for working with messages, storing data, and handling different types of network requests.&lt;/p&gt;

&lt;h2&gt;Flows&lt;/h2&gt;

&lt;p&gt;Flows can be thought of as containers for organizing a sequence of nodes. They are represented in the Node-RED editor as an independent tab. There are a number of different strategies and &lt;a href="https://nodered.org/docs/developing-flows/flow-structure"&gt;best practices&lt;/a&gt; you can use to determine when you should divide a flow into multiple different flows or keep it all together.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/f94e008c1cae47818039be5e0813b159/b7cebe40e661bc7e585cd9837b5aa275/unnamed.png" alt="" /&gt;&lt;/p&gt;

&lt;h2&gt;Messages&lt;/h2&gt;

&lt;p&gt;Messages are JavaScript objects that are passed along from the beginning to the end of a flow through nodes. Properties on the object can be added or modified by a node. Convention is to store the most relevant information in a property called &lt;code&gt;payload&lt;/code&gt; on the message object, which itself is generally called &lt;code class="language-markup"&gt;msg&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;Context&lt;/h2&gt;

&lt;p&gt;Context within Node-RED is essentially the ability to define global variables that can be accessed by nodes directly rather than from within the message being passed to the node. Context can be scoped at 3 different levels. The first is node level, where only the node that set the value can access it. The second is flow level where the value is visible to all nodes within that flow. The final context level is truly global, any node within the Node-RED instance can access the value.&lt;/p&gt;

&lt;h2&gt;Node-RED Flow Tutorial&lt;/h2&gt;

&lt;p&gt;Now let’s jump into the actual tutorial and make a few flows using Node-Red. If you want to follow along you will need a running instance of Node-RED. You have multiple options for how to install Node-RED, if you already have NPM installed that is probably the easiest option. You can also use Docker or install from source using Git. You can see all available options in the &lt;a href="https://nodered.org/docs/getting-started/"&gt;Node-Red documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once Node-RED is installed you can open your web browser and visit localhost at port 1880 and see the Node-Red editor. We’ll start out making a basic “hello world” flow to confirm everything is working properly.&lt;/p&gt;

&lt;p&gt;First, drag an inject node from the left hand sidebar and put it onto the editor. Click on the node and change the payload to a string with value and whatever input you want, I’ll follow tradition and use “hello world” for my value.&lt;/p&gt;

&lt;p&gt;Now grab a debug node and place it on the editor, by default it will output the message payload passed by the previous node. Click on the debug node and check the box for “system console” so our message will also be printed to the terminal as well as the debug sidebar. Your editor should look something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/7e888f50dab4405ca7e86c9e5dd54ed8/13cd1eca1f6cbe429ef8e49daff50a65/unnamed.png" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;Now you can click deploy in the top right corner of the Node-Red editor. Click the box on the left side of your inject node to start your flow. If everything worked properly you should see values appearing in both your terminal and the Node-Red debug sidebar:&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/a4a1f3ec7aa542f1998eeb147dbf1cb2/ab5f2476ab0ef4f47201cf8a28b548d9/unnamed.png" alt="Terminal" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/d2a15e6d14634f6d8f480db13bd661f9/4eb4875724ac9117bf09935980332271/unnamed.png" alt="Node-Red debug sidebar" /&gt;&lt;/p&gt;

&lt;h2&gt;Node-RED MQTT flow&lt;/h2&gt;

&lt;p&gt;Now we’ll move onto something a little more complicated. For this flow we will connect Node-RED to an &lt;a href="https://www.influxdata.com/integration/mqtt-monitoring/"&gt;MQTT broker&lt;/a&gt;, transform the data using a Node-Red function node, and then store that data using InfluxDB for long term storage and analysis.&lt;/p&gt;

&lt;p&gt;The first thing you need to do is install the &lt;a href="https://flows.nodered.org/node/node-red-contrib-influxdb"&gt;InfluxDB Node-Red package&lt;/a&gt;. To do this click on the hamburger menu icon on the top right of the editor next to the deploy button. Then click on ‘manage palette’ and then click to the Install tab. Type InfluxDB into the search box and select the package called node-red-contrib-influxdb.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/2209121578a7426c91538e2a5a716817/fdc294cd0c55554fe0570d796d19fa6f/unnamed.png" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;With that package installed if you scroll to the bottom of your node palette on the left hand of your screen you should see three new nodes added for working with InfluxDB.&lt;/p&gt;

&lt;p&gt;You’ll now want to create an &lt;a href="https://docs.influxdata.com/influxdb/cloud/get-started/"&gt;InfluxDB instance&lt;/a&gt;. You can create a free InfluxDB Cloud account or install InfluxDB locally. Create a bucket and then grab an API token with access to that bucket. You can find instructions on how to do this and much more in the &lt;a href="https://docs.influxdata.com/influxdb/cloud/"&gt;InfluxDB Documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For this flow instead of using an inject node to start things, we will use the &lt;code class="language-markup"&gt;MQTT In&lt;/code&gt; node and connect to a free &lt;a href="https://www.hivemq.com/public-mqtt-broker/"&gt;public MQTT broker&lt;/a&gt; provided by HiveMQ. If you already have an MQTT broker installed locally you can also use that, the configuration is the same. Click on the MQTT node after dragging it onto the editor and add a new broker by providing the server URL and port number. For HiveMQ the URL is &lt;code&gt;broker.hivemq.com&lt;/code&gt; and the port is &lt;code class="language-markup"&gt;1883&lt;/code&gt;. Leave the version as MQTT V3.1.1.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/e539cee51b0247f08162c39e8b8e91f3/68ba72ebfe604d9f71dd114675ec4153/unnamed.png" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;Set the &lt;code class="language-markup"&gt;Action&lt;/code&gt; for the node to subscribe to a single topic and put in the topic you want to listen to, it can be whatever you want in this case. I’ll be setting the topic as &lt;code class="language-markup"&gt;nodered&lt;/code&gt; for simplicity. Once you deploy this flow, Node-RED will connect to the broker and listen to any messages under that topic name.&lt;/p&gt;

&lt;p&gt;We will be passing a temperature number through MQTT to simulate some sort of IoT sensor recording air temperature. By default this will be passed as a string, so we need to create a function to convert it into an integer before storing it with InfluxDB. Add a function node to the page and put the following code into the node:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-markup"&gt;msg.payload = Number(msg.payload)
return msg;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now add the &lt;code&gt;InfluxDB Out&lt;/code&gt; node and connect it to the function. Create an InfluxDB server instance by adding in your URL and API token. Then add in your organization ID and the name of the bucket where you want to store your data.&lt;/p&gt;

&lt;p&gt;To test everything out you can use any MQTT client, HiveMQ also provides a websocket client that is easy to use &lt;a href="http://www.hivemq.com/demos/websocket-client/"&gt;here&lt;/a&gt;. Set the topic to match the topic in your MQTT node and then publish a message with a number as the value, something like this:&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/aab86d66603f42258763482fb20853cb/b9cc0df03519deb31838596456276879/unnamed.png" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;If everything worked properly you should start seeing data in your InfluxDB instance every time you submit an MQTT message to the broker:&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/f74656f93ea341ddad86d4323fc97c59/e78d3080d0fd6cc3fc04097160320ff0/unnamed.png" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;The flow itself should look similar to this, note the MQTT node provides a notification box letting you know if you are able to connect to the broker:&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/e45db3789166463286ffd68af2e39b8e/8c41cd53283e549f9032ac09addee5e4/unnamed.png" alt="" /&gt;&lt;/p&gt;

&lt;h2&gt;Node-RED project ideas&lt;/h2&gt;

&lt;p&gt;So now you have a basic understanding of how to work with Node-RED, but what are some actual real-world use cases? In this section I’ll give you a few potential areas you can explore to build out your own custom projects with Node-Red.&lt;/p&gt;

&lt;h3&gt;Data visualization and analysis&lt;/h3&gt;

&lt;p&gt;Node-Red works best as the glue between different components, making it easy to move data around. While Node-RED does provide some basic storage and visualization capabilities it makes sense to use specialized tools for these things. As you saw with the MQTT example InfluxDB can be used for storing and visualizing data. For analysis the Flux scripting  language provides tons of functionality for &lt;a href="https://www.influxdata.com/time-series-analysis-methods/"&gt;analyzing time series data&lt;/a&gt;. The Node-RED InfluxDB package also gives you a node to query data from InfluxDB into Node-Red, so you have access to other tools in the ecosystem if you prefer those.&lt;/p&gt;

&lt;h3&gt;Smart home&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.home-assistant.io/"&gt;Home Assistant&lt;/a&gt; is a popular home automation framework that provides integrations with numerous smart devices. But many users find it difficult to build out more customized workflows using the tools provided by Home Assistant. Node-RED is a common choice for these situations and there are a ton of potential project options that will help you learn more about Node-RED and also be useful from a practical perspective.&lt;/p&gt;

&lt;h3 id="node-red-as-an-event-processing-framework"&gt;Node-RED as an event processing framework&lt;/h3&gt;

&lt;p&gt;While a lot of the focus in this article has been IoT related, I think that looking at Node-RED as a tool to process any kind of event is the best way to see how much you can really do with it. Node-RED gives you the ability to quickly connect and listen to HTTP, websockets, TCP, MQTT, and numerous other network protocols.&lt;/p&gt;

&lt;p&gt;As a result it can be used to move data to and from almost any type of application and allows you access to the entire NodeJS ecosystem via NPM modules. You also always have the option to reach out to other services via API or running local commands via the Exec node. With Node-RED your only limitation is really your own creativity for how to combine the tools it provides.&lt;/p&gt;

&lt;h2 id="additional-resources"&gt;Additional resources&lt;/h2&gt;

&lt;p&gt;Check out these additional resources to learn how you can use Node-RED with InfluxDB&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://www.influxdata.com/blog/getting-started-home-assistant-node-red-tutorial-influxdb/"&gt;Node-RED and Home Assistant tutorial&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://www.influxdata.com/blog/node-red-influxdb-raspberry-pi-iot-sensor-tutorial/"&gt;Build an IoT Sensor project with InfluxDB and Node-RED&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://www.influxdata.com/blog/node-red-dashboard-tutorial/"&gt;Node-RED Dashboard tutorial&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://www.influxdata.com/blog/understanding-how-use-node-red-functions/"&gt;Node-RED functions tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Thu, 17 Apr 2025 10:04:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/iot-easy-node-red-influxdb/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/iot-easy-node-red-influxdb/</guid>
      <category>Product</category>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Charles Mahler (InfluxData)</author>
    </item>
    <item>
      <title>Introducing the Time Series Buying Guide for IIoT</title>
      <description>&lt;p&gt;All machinery and equipment, including their controls and sensors, tell a story through the data they collect. This data, or Industrial Internet of Things (IIoT) data, provides a detailed narrative about the machines, offering actionable insights to improve operations. IIoT data empowers businesses to optimize and enhance industrial processes by detailing operational status, performance metrics, usage patterns, health diagnostics, and environmental conditions.&lt;/p&gt;

&lt;h2 id="the-value-of-leveraging-iiot-data"&gt;The value of leveraging IIoT data&lt;/h2&gt;

&lt;p&gt;Harnessing IIoT data can significantly improve operational and business efficiency. When fully utilized, it transforms raw information into tangible benefits, such as:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Real-time anomaly detection and intervention&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Maximized productivity, minimized waste and downtime&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Reduced unplanned outages and improved maintenance forecasting&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Extracting the full value from machines, equipment, industrial controls, and sensor data drives increased revenue by reducing outages, optimizing processes, and lowering error rates. However, achieving these benefits requires tools that preserve and enhance the quality of datasets, ensuring they remain actionable and accurate.&lt;/p&gt;

&lt;h2 id="the-challenges-of-managing-iiot-data"&gt;The challenges of managing IIoT data&lt;/h2&gt;

&lt;p&gt;IIoT data captures changes over time, from subtle fluctuations to catastrophic shifts. This temporal context makes it “time series” data—a sequence of data points collected or recorded at regular intervals. Managing time series data poses unique challenges due to its scale, speed, and complexity:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Massive scale&lt;/strong&gt;: Continuous high-speed, high-volume data streams&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Real-time action&lt;/strong&gt;: The need for immediate analysis and response within data streams&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Data cardinality&lt;/strong&gt;: High numbers of tags collected result in high cardinality, which can strain system performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Businesses can easily generate billions of IIoT time series data points per second, demanding ingestion and storage solutions that keep pace with real-time analytics.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/1QjfSnM2IAAjRtVfPKTyjM/1166270676a2ed08db86c097fd99b76d/iiot-metrics.png" alt="IIoT metrics" /&gt;&lt;/p&gt;

&lt;h2 id="why-high-fidelity-data-matters"&gt;Why high-fidelity data matters&lt;/h2&gt;

&lt;p&gt;Successfully managing these challenges results in high-fidelity data—complete and accurate datasets that provide precise insights. High-fidelity data enables businesses to detect issues early, build accurate analytics, and create reliable models.&lt;/p&gt;

&lt;p&gt;Conversely, failing to address these challenges results in incomplete datasets, which lack the necessary precision to capture early-stage anomalies or build actionable insights.&lt;/p&gt;

&lt;h2 id="safeguard-and-maximize-value-from-your-data"&gt;Safeguard and maximize value from your data&lt;/h2&gt;

&lt;p&gt;“&lt;strong&gt;Time Series Buying Guide for IIoT&lt;/strong&gt;” explores how manufacturers can identify the tools and architectural practices necessary to achieve high-fidelity data sets. Readers will gain insight into the unique characteristics of IIoT time series data compared to other data types. The guide highlights which tools can maximize the value of IIoT data and warns against those that may appear beneficial but prove detrimental over time. Additionally, it offers practical advice on seamlessly integrating specialized IIoT tools into existing architectures and environments, eliminating the need for costly, large-scale system overhauls.&lt;/p&gt;

&lt;p&gt;Download the “Time Series Buying Guide for IIoT” now.&lt;/p&gt;

&lt;div class="is-box br-20 mt-6"&gt;
&lt;script src="https://get.influxdata.com/js/forms2/js/forms2.min.js"&gt;&lt;/script&gt;
&lt;form class="mktoMain skipautoload" id="mktoForm_1419"&gt;&lt;/form&gt;
&lt;script&gt;
    var redirect_url = 'https://get.influxdata.com/rs/972-GDU-533/images/Time-Series-Buying-Guide-for-IIoT.pdf?version=0';

    MktoForms2.setOptions({ formXDPath:"/rs/972-GDU-533/images/marketo-xdframe-relative.html" });
    MktoForms2.loadForm("https://get.influxdata.com", "972-GDU-533", 1419, function (form) {
        jQuery('form.mktoMain .mktoButton').text('Download PDF');
        form.addHiddenFields({'mkto_content_name': 'TechPaper-2025-Time-Series-Buyers-Guide'}); 
      form.onSuccess(function(values, followUpUrl) {
        window.location.href = redirect_url;
        return false; 
      });
    });
&lt;/script&gt;
  &lt;/div&gt;
</description>
      <pubDate>Wed, 29 Jan 2025 07:00:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/introducing-time-series-buying-guide-for-iiot/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/introducing-time-series-buying-guide-for-iiot/</guid>
      <category>Use Cases</category>
      <author>Jessica Wachtel (InfluxData)</author>
    </item>
    <item>
      <title>Maximizing IIoT Impact with Open Data, AI, and Advanced Analytics: A Comprehensive Guide</title>
      <description>&lt;p&gt;&lt;em&gt;This tech paper was created by IIoT World and InfluxDB. This post was originally published on IIoT World.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The Industrial Internet of Things (IIoT) is revolutionizing industries like manufacturing, energy, and logistics by creating more intelligent, interconnected systems that elevate productivity and efficiency. With IIoT, machines, systems, and sensors are linked in real-time, streamlining industrial automation and making predictive maintenance a reality—all while reducing downtime and costs.&lt;/p&gt;

&lt;h2 id="transforming-industry-with-the-power-of-iiot"&gt;Transforming industry with the power of IIoT&lt;/h2&gt;

&lt;p&gt;In today’s competitive landscape, an open data ecosystem is crucial for maximizing IIoT’s potential. Open data allows companies to modify their systems to meet unique needs without being locked into proprietary solutions. This flexibility lets companies control expenses and integrate new technologies, making infrastructure management more streamlined as they scale or expand operations.&lt;/p&gt;

&lt;h2 id="benefits-of-open-data-ecosystems-in-iiot"&gt;Benefits of open data ecosystems in IIoT&lt;/h2&gt;

&lt;p&gt;Unlike rigid, closed systems, open data solutions empower manufacturers to innovate and customize, adapting to specific operational needs. This flexibility improves resource allocation and data flow, giving companies a significant edge by eliminating vendor lock-in. With open data, industrial firms can make faster adjustments and implement changes more economically, ultimately leading to smoother management and a more agile approach to new technologies.&lt;/p&gt;

&lt;h2 id="key-tools-ai-and-time-series-databases-for-real-time-insights"&gt;Key tools: AI and time series databases for real-time insights&lt;/h2&gt;

&lt;p&gt;As IIoT systems grow, so do the demands for real-time data analysis. Artificial intelligence (AI) and time series databases are indispensable for managing vast amounts of time-stamped data generated by IIoT devices. This booklet showcases how AI tools like TensorFlow, PyTorch, and Apache Spark MLlib optimize industrial processes and deliver real-time insights. Time series databases, such as InfluxDB, play a pivotal role, enabling predictive maintenance, anomaly detection, and enhanced quality control to keep operations running smoothly.&lt;/p&gt;

&lt;h2 id="check-out-the-guide-for-smarter-industrial-automation"&gt;Check out the guide for smarter industrial automation&lt;/h2&gt;

&lt;p&gt;“The Value of Open Data AI, ML, and Analytics Tools for IIoT” dives into how manufacturers can leverage these tools for a competitive edge. Readers will learn about:
AI Tools for Intelligent Data Insights: Discover how advanced AI tools can forecast maintenance needs and spot anomalies before they cause issues, boosting efficiency across the board.
Flexible and Scalable Open Data Ecosystems: Learn how open data solutions offer customization options that avoid vendor lock-in, empowering companies to choose the tools that best suit their needs.
Real-Time Analytics with Time Series Databases: Explore how time series databases like InfluxDB manage large-scale, time-stamped data, allowing immediate insights and faster, data-driven decisions.
Advanced Analytics for Smarter Decision-Making: See how IIoT data, paired with AI, helps decision-makers spot trends, enhance efficiency, and optimize production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download the guide today&lt;/strong&gt; to explore how these cutting-edge tools and open data ecosystems are paving the way for a more efficient, flexible industrial future. Embrace the power of IIoT to keep your operations optimized and ahead of the competition.&lt;/p&gt;

&lt;div class="is-box br-20 mt-6"&gt;
&lt;script src="https://get.influxdata.com/js/forms2/js/forms2.min.js"&gt;&lt;/script&gt;
&lt;form class="mktoMain skipautoload" id="mktoForm_1419"&gt;&lt;/form&gt;
&lt;script&gt;
    var redirect_url = 'https://get.influxdata.com/rs/972-GDU-533/images/Value-of-Open-Data-Ecosystem.pdf?version=1';

    MktoForms2.setOptions({ formXDPath:"/rs/972-GDU-533/images/marketo-xdframe-relative.html" });
    MktoForms2.loadForm("https://get.influxdata.com", "972-GDU-533", 1419, function (form) {
        jQuery('form.mktoMain .mktoButton').text('Download PDF');
        form.addHiddenFields({'mkto_content_name': 'TechPaper-2024-Value-of-Open-Data-Ecosystem'}); 
      form.onSuccess(function(values, followUpUrl) {
        window.location.href = redirect_url;
        return false; 
      });
    });
&lt;/script&gt;
  &lt;/div&gt;
</description>
      <pubDate>Wed, 18 Dec 2024 07:00:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/maximizing-iiot-impact-with-open-data-ai-advanced-analytics-comprehensive-guide/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/maximizing-iiot-impact-with-open-data-ai-advanced-analytics-comprehensive-guide/</guid>
      <category>Use Cases</category>
      <author>Jessica Wachtel (InfluxData)</author>
    </item>
    <item>
      <title>Case Study: Modernizing SPEN's Tech Stack with Capula and InfluxDB</title>
      <description>&lt;h2 id="background"&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;Scottish Power Energy Networks (SPEN) started a journey to improve its technology by working with Capula and using InfluxDB. Let’s explore the use case, goals, and the role of &lt;a href="https://www.influxdata.com/products/influxdb-overview/#overview/?utm_source=website&amp;amp;utm_medium=direct&amp;amp;utm_campaign=modernizing_spen_tech_stack_capula_influxdb&amp;amp;utm_content=blog"&gt;InfluxDB&lt;/a&gt; in this modernization effort.&lt;/p&gt;

&lt;p&gt;In 2020, SPEN looked at its data historian systems and realized it needed a better solution to meet future data storage needs. With a focus on modernizing their systems and addressing business challenges through data, they sought a new technology solution.&lt;/p&gt;

&lt;p&gt;Capula, a seasoned systems integrator familiar with SPEN’s infrastructure, recommended InfluxDB, a time series database that can manage high volumes of diverse data types. Capula provided comprehensive consultancy services, employing a layered approach to understanding organizational needs, design solutions, and apply technologies that enhance the convergence of operational technology (OT) and information technology (IT). Capula’s efforts included conducting tests and demonstrations to ensure system reliability and cybersecurity, such as Telegraf buffering, visualizing alarm data, and ingesting real-time data using OPC-UA protocols.&lt;/p&gt;

&lt;p&gt;Capula undertook a two-phase proof-of-concept project focusing on learning the intricacies of InfluxDB’s architecture and its integration within SPEN’s systems. They performed functional benchmarking, addressed issues related to high data cardinality, optimized data ingestion processes, and tested the distributed architecture of InfluxDB to ensure system stability. Additionally, they assisted in designing data retention policies and preparing for future updates and cybersecurity enhancements.&lt;/p&gt;

&lt;p&gt;This ultimately led to a successful initial proof of concept in 2021, which expanded into a more comprehensive integration with SPEN’s existing systems that aligned with their modernization goals and enhanced data quality, reliability, and scalability.&lt;/p&gt;

&lt;h4 id="goals"&gt;&lt;strong&gt;Goals&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;The specific goals SPEN aimed to achieve by modernizing its data historian systems included:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Handling dramatic increases in data storage requirements.&lt;/li&gt;
  &lt;li&gt;Consolidating analog and digital data into one system for easier comparison and analysis.&lt;/li&gt;
  &lt;li&gt;Ensuring the system’s reliability and stability.&lt;/li&gt;
  &lt;li&gt;Preparing for future data volume and requirements.&lt;/li&gt;
  &lt;li&gt;Testing new technologies to build knowledge on technical requirements and inform future purchases.&lt;/li&gt;
  &lt;li&gt;Enhancing decision-making processes by integrating diverse data types and improving data quality and integrity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="role-of-influxdb"&gt;&lt;strong&gt;Role of InfluxDB&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;InfluxDB played a crucial role in modernizing SPEN’s tech stack by providing a scalable and efficient solution for handling high volumes of diverse data types. It enabled real-time data ingestion and processing, essential for managing energy sensor data. InfluxDB’s ability to blend different data types, such as field, asset, and operational data, facilitated easier access and integration, enhancing decision-making processes. Additionally, its advanced features for data cleaning, system interoperability, and the capability to design custom data retention policies further demonstrate its effectiveness.&lt;/p&gt;

&lt;h2 id="benefits"&gt;&lt;strong&gt;Benefits&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;The new system ‌significantly improved SPEN’s data quality, reliability, and scalability. It allows for the ingestion of diverse data types without a specific data model (aka schema-on-write), which enhances data quality by enabling the blending of various data sources. The system’s distributed architecture ensures reliability by maintaining database access even if a node becomes unavailable. The system achieves scalability through its ability to handle high volumes of data and its optimization for write-intensive workloads, making it suitable for SPEN’s growing data requirements.&lt;/p&gt;

&lt;h2 id="wrapping-up"&gt;&lt;strong&gt;Wrapping up&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;Overall, the journey involved extensive testing, functional benchmarking, and the development of a scalable and efficient data management solution to support SPEN’s goal of achieving net zero carbon by 2050. InfluxDB stands to play a pivotal role in SPEN’s ongoing transformation, providing the necessary tools and capabilities to meet its current and future data management needs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.influxdata.com/lp/why-influxdb-for-energy-and-utilities/?utm_source=website&amp;amp;utm_medium=direct&amp;amp;utm_campaign=modernizing_spen_tech_stack_capula_influxdb&amp;amp;utm_content=blog"&gt;Go here to learn more about using InfluxDB for energy and utilities&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Tue, 05 Nov 2024 08:00:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/modernizing-spen-tech-stack-capula-influxdb/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/modernizing-spen-tech-stack-capula-influxdb/</guid>
      <category>Use Cases</category>
      <author>Jessica Wachtel (InfluxData)</author>
    </item>
    <item>
      <title>How WOW! Modernized Legacy Infrastructure Monitoring with InfluxDB and Kafka</title>
      <description>&lt;p&gt;With over 500,000 residential, business, and wholesale customers across multiple markets in the United States, WideOpenWest (WOW!) is one of the United States’ largest broadband providers. They aim to connect homes and businesses to the world with fast and reliable internet, TV, and phone services.&lt;/p&gt;

&lt;h2 id="wows-challenge"&gt;WOW!’s challenge&lt;/h2&gt;

&lt;p&gt;As a data-driven organization, WOW!’s support team wanted to detect network outages using data from the network nodes (devices), rather than customer calls. But WOW!’s support engineering team faced challenges from the diversity of their distributed field equipment. WOW!’s networks consist of both brownfield and greenfield builds, which are cable and fiber, or all-fiber networks, respectively. WOW!’s nodes (modems and other DOCSIS devices) are different models, created by different vendors, and come with their own set of specifications. It’s cost prohibitive for WOW! to make every network a greenfield build and buy uniform technology because WOW! has networks all over the United States and monitors upwards of 800,000 modems. Monitoring this massive number of varying technologies kept WOW!’s engineering team locked in a disjointed legacy observability solution.&lt;/p&gt;

&lt;p&gt;WOW!’s legacy monitoring platforms offered insight into their infrastructure, but diverse vendor-locked data collection, monitoring restrictions, and technical requirements led to separate platforms and dashboards for different groups of networks and nodes. The lack of a centralized observability platform meant WOW! engineers had no way of analyzing all their nodes and networks in one place. In addition to the complexities added by WOW!’s disjointed dashboards and platforms, WOW!’s engineering team used a time series database that failed regularly.&lt;/p&gt;

&lt;p&gt;WOW!’s engineering team needed to better understand the health of each node and their networks overall. The engineers hypothesized that a centralized datastore with real-time and historical analytic viewing capabilities will provide more visibility into the node and network health.&lt;/p&gt;

&lt;h2 id="the-solution"&gt;The solution&lt;/h2&gt;

&lt;p&gt;Time series benchmark testing introduced WOW! engineers to InfluxDB’s superior write speeds. When WOW! engineers decided to modernize their legacy system, they selected InfluxDB Enterprise (now available as &lt;a href="https://www.influxdata.com/products/influxdb-clustered/"&gt;InfluxDB Clustered&lt;/a&gt;) as the time series database backend. InfluxDB offered WOW! engineers something no other vendors or monitoring solutions could – the flexibility to work around all restrictions to create a single monitoring platform.&lt;/p&gt;

&lt;h3 id="the-architecture"&gt;The architecture&lt;/h3&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/2XEbDdVjKtoEYdzMmLIZBT/de0a74187d7ade20137d3c811f82a35c/WOW_architecture_diagram.png" alt="WOW! architecture diagram" /&gt;&lt;/p&gt;

&lt;p&gt;WOW!’s monitoring platform consists of a four-node InfluxDB cluster in production and a two-node InfluxDB cluster running on OpenStack for testing. WOW! engineers use InfluxDB to derive insight from real-time analytics, create visualizations, and trigger alerts and the troubleshooting process. WOW! engineers leverage InfluxDB’s alerting frameworks to send alerts via Slack, email, and ServiceNow, their automatic ticketing platform. WOW! engineers use Grafana to create customized dashboarding. This includes custom dashboarding for real-time analytics and historical trend analysis.&lt;/p&gt;

&lt;p&gt;The engineers built a Kafka cluster and placed it between the data sources and InfluxDB. This provides an additional layer of redundancy and control of the data flow. WOW! engineers use &lt;a href="https://www.influxdata.com/integration/snmp/"&gt;Simple Network Management Protocol (SNMP)&lt;/a&gt; polling and traps to collect data from roughly 650,000 cable modems in five-minute cycles. WOW! engineers collect data from most of their virtual machines (VMs) and containers using &lt;a href="https://www.influxdata.com/time-series-platform/telegraf/"&gt;Telegraf&lt;/a&gt;. After the modernization, WOW! engineers implemented an infrastructure-as-code system using Ansible. The engineers now use Ansible to automate cluster setup and installation.&lt;/p&gt;

&lt;p&gt;Leveraging Telegraf, InfluxDB, and Grafana, also known as the &lt;a href="https://www.influxdata.com/blog/infrastructure-monitoring-basics-telegraf-influxdb-grafana/"&gt;TIG stack&lt;/a&gt;, created a complete picture of WOW!’s device and network health. This led to higher functionality and lower downtimes.&lt;/p&gt;

&lt;p&gt;To learn more about WideOpenWest, read the &lt;a href="https://www.influxdata.com/customer/wideopenwest/"&gt;full case study here&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Wed, 01 Nov 2023 08:00:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/how-wow-modernized-legacy-infrastructure-monitoring-with-influxdb-and-kafka/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/how-wow-modernized-legacy-infrastructure-monitoring-with-influxdb-and-kafka/</guid>
      <category>Use Cases</category>
      <author>Jessica Wachtel (InfluxData)</author>
    </item>
    <item>
      <title>Getting Started with Infrastructure Monitoring</title>
      <description>&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://thenewstack.io/getting-started-with-infrastructure-monitoring/"&gt;The New Stack&lt;/a&gt; and is reposted here with permission.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By taking advantage of monitoring data, companies can ensure their infrastructure is performing optimally while reducing costs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While building new features and launching new products is fun, none of it matters if your software isn’t reliable. One key part of making sure your apps run smoothly is having robust infrastructure monitoring in place. In this article you will learn about the following:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The different components of infrastructure monitoring.&lt;/li&gt;
  &lt;li&gt;Popular tools used for infrastructure monitoring.&lt;/li&gt;
  &lt;li&gt;How to set up monitoring for an application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you prefer video, you can also check out  &lt;a href="https://www.youtube.com/watch?v=ESub4SAKouI"&gt;this presentation&lt;/a&gt;, which covers some of the themes discussed in this article.&lt;/p&gt;

&lt;h2 id="components-of-infrastructure-monitoring"&gt;Components of infrastructure monitoring&lt;/h2&gt;

&lt;p&gt;Infrastructure monitoring consists of a number of different architecture components that are needed to serve a modern application. To ensure software is reliable, all of these components need to be properly monitored.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Network monitoring&lt;/strong&gt;  —  &lt;a href="https://thenewstack.io/networking/"&gt;Network&lt;/a&gt;  monitoring focuses on hardware-like routers and switches and involves tracking things like bandwidth usage, uptime and device status. It is used to identify bottlenecks, downtime and potentially inefficient network routing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Server monitoring&lt;/strong&gt;  — Server monitoring is focused on monitoring the performance and health of physical and virtual server instances. Metrics like CPU, RAM and disk utilization are common. Server monitoring is important for capacity planning.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Application performance monitoring (APM)&lt;/strong&gt;  — APM is focused on software and is used to track how an application is performing at every layer from the UI to how data is stored. Common metrics are things like error rates and response times.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cloud infrastructure monitoring&lt;/strong&gt;  — Cloud monitoring, as the name implies, is about monitoring cloud infrastructure like databases, different types of storage and VMs. The goal is to track availability and performance, as well as resource utilization to prevent over or under provisioning of cloud hardware.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these types of monitoring act as a different lens for teams to view and manage their infrastructure. By taking advantage of all of this data, companies can ensure their infrastructure is performing optimally while reducing costs.&lt;/p&gt;

&lt;h2 id="tools-for-infrastructure-monitoring"&gt;Tools for infrastructure monitoring&lt;/h2&gt;

&lt;p&gt;Choosing the right tools for the job is critical when it comes to creating an infrastructure monitoring system. There are a number of open source and commercial options available. You also have the option of choosing a full-service solution or creating your own custom solution by combining specialized tools. Regardless, there are three main questions to consider: How are you going to collect your data, how to store the data and what will you do with the data? Let’s look at some of the tools available for accomplishing each one.&lt;/p&gt;

&lt;h2 id="data-collection-tools"&gt;Data collection tools&lt;/h2&gt;

&lt;p&gt;One of the biggest challenges with infrastructure monitoring is collecting data that may be coming from many different sources, often with no standardized protocol or API. The key goal here should be to choose a tool that saves you from having to reinvent the wheel, doesn’t lock you in and is extensible so you can scale or modify data collection as your app changes.&lt;/p&gt;

&lt;h3 id="telegraf"&gt;Telegraf&lt;/h3&gt;

&lt;p&gt;Telegraf is an open source server agent that is ideal for infrastructure monitoring data collection. Telegraf solves most of the problems mentioned above. It has over 300 different plugins for inputs and outputs, meaning you can easily collect data from new sources and output that data to whichever storage solution works best for your use case.&lt;/p&gt;

&lt;p&gt;The result is that Telegraf saves you a ton of engineering resources by not having to write custom code for collecting data and prevents vendor lock-in because you can change storage outputs easily. Telegraf also has  &lt;a href="https://www.influxdata.com/time-series-platform/telegraf/"&gt;plugins for data processing and transformation&lt;/a&gt;, so in some use cases it can simplify your architecture by replacing stream-processing tools.&lt;/p&gt;

&lt;h3 id="opentelemetry"&gt;OpenTelemetry&lt;/h3&gt;

&lt;p&gt;OpenTelemetry is an open source set of SDKs and tools that make it easy to collect metrics, logs and  &lt;a href="https://www.influxdata.com/blog/tracing-influxdb-iox/"&gt;traces&lt;/a&gt;  from applications. The primary advantage of  &lt;a href="https://thenewstack.io/how-adobe-uses-opentelemetry-collector/"&gt;OpenTelemetry&lt;/a&gt;  is that it is vendor agnostic, so you don’t have to worry about getting locked into an expensive APM tool with high switching costs.  &lt;a href="https://www.influxdata.com/blog/opentelemetry-tutorial-collect-traces-logs-metrics-influxdb-3-0-jaeger-grafana/"&gt;OpenTelemetry&lt;/a&gt;  also saves your developers time by providing tools to make instrumenting applications for data collection easy.&lt;/p&gt;

&lt;h2 id="data-storage-tools"&gt;Data storage tools&lt;/h2&gt;

&lt;p&gt;After you start collecting data from your infrastructure, you’ll need a place to store that data. While a general-purpose database can be used for this data, in many cases you will want to look for a more specialized database designed for working with the types of  &lt;a href="https://www.influxdata.com/what-is-time-series-data/"&gt;time series data&lt;/a&gt; collected for infrastructure monitoring. Here are a few available options:&lt;/p&gt;

&lt;h3 id="influxdb"&gt;InfluxDB&lt;/h3&gt;

&lt;p&gt;InfluxDB is an open source time series database designed for storing and analyzing high volumes of time series data. It offers efficient storage and retrieval capabilities, scalability and support for real-time analytics. With  &lt;a href="https://www.influxdata.com/products/influxdb-overview/"&gt;InfluxDB&lt;/a&gt;, you can easily capture and store metrics from various sources, making it a good fit for monitoring and analyzing the performance and health of your infrastructure.&lt;/p&gt;

&lt;h3 id="prometheus"&gt;Prometheus&lt;/h3&gt;

&lt;p&gt;Prometheus is an open source monitoring and alerting toolkit built for collecting and storing metrics data. It is specifically designed to monitor dynamic and cloud native environments.  &lt;a href="https://www.influxdata.com/integration/prometheus-monitoring-tool/"&gt;Prometheus&lt;/a&gt;  provides a flexible data model and powerful query language, making it well-suited for storing infrastructure monitoring data. With its built-in alerting and visualization capabilities, Prometheus enables you to gain insight into the performance and availability of your infrastructure.&lt;/p&gt;

&lt;h3 id="graphite"&gt;Graphite&lt;/h3&gt;

&lt;p&gt;Graphite is a time series database and visualization tool that focuses on storing and rendering graphs of monitored data. It is widely used for monitoring and graphing various metrics, making it a suitable option for storing infrastructure monitoring data. Graphite excels at visualizing time series data, allowing you to create interactive and customizable dashboards to monitor the performance and trends of your infrastructure. Its scalable architecture and extensive ecosystem of plugins make it a popular choice for monitoring and analyzing infrastructure metrics.&lt;/p&gt;

&lt;h2 id="data-analysis-tools"&gt;Data analysis tools&lt;/h2&gt;

&lt;p&gt;Once you’ve got your data stored, it’s time for the fun part, actually doing something with it to create value. Here are a few tools that you can use for analyzing your data.&lt;/p&gt;

&lt;h3 id="grafana"&gt;Grafana&lt;/h3&gt;

&lt;p&gt;Grafana is a powerful open source data visualization and analytics tool that allows users to create, explore and share interactive dashboards. It is commonly used for analyzing infrastructure monitoring data by connecting to various data sources such as databases, APIs and monitoring systems. With  &lt;a href="https://www.influxdata.com/grafana/"&gt;Grafana&lt;/a&gt;, users can create visualizations, set up alerts and gain insights into their infrastructure metrics, logs and traces.&lt;/p&gt;

&lt;h3 id="apache-superset"&gt;Apache Superset&lt;/h3&gt;

&lt;p&gt;Apache Superset is a modern enterprise-ready business intelligence web application that enables users to explore, visualize and analyze data. It provides a user-friendly interface for creating interactive dashboards, charts and reports. When it comes to analyzing infrastructure monitoring data,  &lt;a href="https://www.influxdata.com/integration/apache-superset/"&gt;Apache Superset&lt;/a&gt;  can be used to connect to monitoring systems, databases or other data sources to explore and visualize key metrics, generate reports and gain insights into the performance and health of the infrastructure.&lt;/p&gt;

&lt;h3 id="jaeger"&gt;Jaeger&lt;/h3&gt;

&lt;p&gt;Jaeger is an open source, end-to-end distributed tracing system that helps users monitor and troubleshoot complex microservices architectures. It can be used for analyzing infrastructure monitoring data by providing detailed insights into the interactions and dependencies between different components of the infrastructure.  &lt;a href="https://thenewstack.io/best-practices-for-deploying-jaeger-on-kubernetes-in-production/"&gt;Jaeger&lt;/a&gt;  captures and visualizes traces, which represent the path of requests as they travel through the system, allowing users to identify bottlenecks, latency issues and performance optimizations in the infrastructure.&lt;/p&gt;

&lt;h2 id="infrastructure-monitoring-tutorial"&gt;Infrastructure monitoring tutorial&lt;/h2&gt;

&lt;p&gt;Now let’s look at an example of how to implement a monitoring system for an application. This tutorial will focus on a combination of open source tools known as the  &lt;a href="https://www.influxdata.com/blog/tig-stack-iiot-ot/"&gt;TIG stack&lt;/a&gt;: Telegraf, InfluxDB and  &lt;a href="https://www.influxdata.com/blog/getting-started-influxdb-grafana/"&gt;Grafana&lt;/a&gt;. The TIG stack allows developers to easily build an infrastructure monitoring solution that is scalable and extensible in the long term.&lt;/p&gt;

&lt;h3 id="architecture-overview"&gt;Architecture overview&lt;/h3&gt;

&lt;p&gt;The example application for this tutorial is a chat app powered by an AI model that returns responses based on user input. The app has a hybrid architecture with the backend hosted on AWS, and the AI model is run on dedicated GPUs outside the cloud. The primary challenge is ensuring reliability of the service while also scaling infrastructure due to rapid user growth. Doing this requires collecting large amounts of data to track resource utilization in real time for monitoring and also for future capacity planning based on user growth.&lt;/p&gt;

&lt;h3 id="infrastructure-monitoring-setup"&gt;Infrastructure monitoring setup&lt;/h3&gt;

&lt;p&gt;Now let’s look at how to set up and configure monitoring for this application. The first step will be configuring  &lt;a href="https://www.influxdata.com/blog/storing-secrets-telegraf/"&gt;Telegraf&lt;/a&gt;  to collect the data we want from each part of our infrastructure. We’ll take advantage of the following Telegraf plugins:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;SNMP input —&lt;/strong&gt;  The SNMP plugin is used to collect the metrics needed for network monitoring.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;CPU, Disk, Nvidia SMI, DiskIO, mem, swap, system input —&lt;/strong&gt;  These plugins are used to collect server monitoring metrics.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;OpenTelemetry input —&lt;/strong&gt;  OpenTelemetry is used to collect application performance metrics like logs, metrics and traces.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AWS Cloudwatch input —&lt;/strong&gt;  The AWS CloudWatch plugin makes it easy to collect all the cloud infrastructure metrics we need from AWS.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://github.com/influxdata/telegraf/tree/master/plugins/outputs/influxdb_v2"&gt;&lt;strong&gt;InfluxDB V2 output&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;—&lt;/strong&gt;  The InfluxDB output plugin will send all of these collected metrics to the specified InfluxDB instance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And here’s an example of a Telegraf configuration  &lt;a href="https://docs.fileformat.com/programming/toml/#:~:text=TOML%20(Tom's%20Obvious%20Minimal%20Language,parse%20to%20different%20data%20structures"&gt;TOML file&lt;/a&gt;  for this setup:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-ini"&gt;[global_tags]
  # dc = "us-east-1" # will tag all metrics with dc=us-east-1
  # rack = "1a"
  # user = "$USER"

[agent]
  interval = "10s"
  round_interval = true

  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"

  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""

  # debug = false
  # quiet = false
  # logtarget = "file"
  # logfile = ""
  # logfile_rotation_interval = "0d"
  # logfile_rotation_max_size = "0MB"
  # logfile_rotation_max_archives = 5

  hostname = ""
  omit_hostname = false

[[inputs.snmp]]
  agents = ["udp://127.0.0.1:161"].
  timeout = "15s"
   version = 2
   community = "SNMP"
  retries = 1

  [[inputs.snmp.field]]
    oid = "SNMPv2-MIB::sysUpTime.0"
    name = "uptime"
    conversion = "float(2)"

  [[inputs.snmp.field]]
    oid = "SNMPv2-MIB::sysName.0"
    name = "source"
    is_tag = true

[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false

[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]

[[inputs.diskio]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[nvidia-smi]]

[[inputs.opentelemetry]]
service_address = "0.0.0.0:4317"

  timeout = "5s"

 metrics_schema = "prometheus-v2"

  tls_cert = "/etc/telegraf/cert.pem"
   tls_key = "/etc/telegraf/key.pem"

[[inputs.cloudwatch_metric_streams]]

  service_address = ":443"

[[inputs.cloudwatch]]
  region = "us-east-1"

[[outputs.influxdb_v2]]
  urls = ["http://127.0.0.1:8086"]

  ## Token for authentication.
  token = ""

  ## Organization is the name of the organization you wish to write to.
  organization = ""

  ## Destination bucket to write into.
  bucket = ""

  ## The value of this tag will be used to determine the bucket.  If this
  ## tag is not set the 'bucket' option is used as the default.
  # bucket_tag = ""

  ## If true, the bucket tag will not be added to the metric.
  # exclude_bucket_tag = false

  ## Timeout for HTTP messages.
  # timeout = "5s"

  ## Additional HTTP headers
  # http_headers = {"X-Special-Header" = "Special-Value"}

  ## HTTP Proxy override, if unset values the standard proxy environment
  ## variables are consulted to determine which proxy, if any, should be used.
  # http_proxy = "http://corporate.proxy:3128"&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This Telegraf configuration takes care of both the data collection and data storage steps by collecting all the designated data and sending it to InfluxDB for storage. Let’s go over some ways you can use that data.&lt;/p&gt;

&lt;p&gt;&lt;img style="padding: 20px 0px;" src="//images.ctfassets.net/o7xu9whrs0u9/34IgPpSz9BB75bdaTcrIpz/2652c74ce24a7c076c11a35aef948373/InfluxDB_Platform.png" alt="InfluxDB Platform" /&gt;&lt;/p&gt;

&lt;h3 id="data-visualization"&gt;Data visualization&lt;/h3&gt;

&lt;p&gt;One of the first steps for many companies is to create dashboards and data visualizations for their infrastructure monitoring system. These dashboards can be used for everything from high-level reports to detailed analysis by engineers monitoring things in real time. Here’s an example of a Grafana dashboard built using the data collected for this tutorial:&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/2i6swKtSvSsQRA1bUgil4l/ee0076f7f169f5a141aa94a8b5f8c945/Data_Visualization.png" alt="Data Visualization" /&gt;&lt;/p&gt;

&lt;h3 id="alerting"&gt;Alerting&lt;/h3&gt;

&lt;p&gt;While dashboards are nice, it’s impossible to manually track everything happening with your infrastructure at scale. To help with this problem, setting up automated alerting is a common feature of infrastructure monitoring systems. Here’s an example of how Grafana can be used to set value thresholds for metrics and create automated alerts if those thresholds are violated.&lt;/p&gt;

&lt;p&gt;&lt;img src="//images.ctfassets.net/o7xu9whrs0u9/4zMcLd9MKm33kF0Tf4bSxG/ccd8803bf40d107c73ddf8cc6980615e/Alerting.png" alt="Alerting" /&gt;&lt;/p&gt;

&lt;p&gt;Grafana integrates with third-party tools like PagerDuty and Slack so engineers can be notified if something goes wrong. In some cases, alerting like this could be used to completely automate certain actions, like automatically scaling cloud capacity if hardware utilization hits a certain level.&lt;/p&gt;

&lt;h3 id="predictive-analytics-and-forecasting"&gt;Predictive analytics and forecasting&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.influxdata.com/resources/enabling-predictive-analytics-with-influxDB/"&gt;Predictive analytics&lt;/a&gt;  and forecasting are probably the ideal end goal for many engineering teams. While alerting is a reactive approach that only works after something has gone wrong, predictive analytics and forecasting allow you to take action before the issue occurs. Creating accurate forecasts is obviously easier said than done, but it has huge benefits when done right.&lt;/p&gt;

&lt;h2 id="next-steps"&gt;Next steps&lt;/h2&gt;

&lt;p&gt;Hopefully this article helped you to better understand infrastructure monitoring and some of the tools that are available for building your own system. If you want to play around with some real data you can check out the following resources:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://github.com/InfluxCommunity/InfluxDB-3-Quick-Starts"&gt;https://github.com/InfluxCommunity/InfluxDB-3-Quick-Starts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://github.com/InfluxCommunity/influxdb-observability"&gt;https://github.com/InfluxCommunity/influxdb-observability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Wed, 11 Oct 2023 07:35:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/getting-started-with-infrastructure-monitoring/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/getting-started-with-infrastructure-monitoring/</guid>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Charles Mahler (InfluxData)</author>
    </item>
    <item>
      <title>A Long Time Ago, on a Server Far, Far Away…</title>
      <description>&lt;p&gt;&lt;em&gt;This article was originally published on &lt;a href="https://thenewstack.io/a-long-time-ago-on-a-server-far-far-away/"&gt;The New Stack&lt;/a&gt; and is reposted here with permission.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is a brief case study that explores the logistics and motivations that would lead a successful company to spend time and resources completely rewriting the core of their flagship product in Rust.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Calling a programming language Rust almost seems like a misnomer. Rust is the brittle byproduct of corrosion — not something that would typically inspire confidence. But fortunately, software developers have very different concerns from metallurgists. In the digital realm, Rust is a game changer.&lt;/p&gt;

&lt;p&gt;The following is a brief case study that explores the logistics and motivations that would lead a successful company to spend time and resources completely rewriting the core of their flagship product in Rust. InfluxData makes  &lt;a href="https://www.influxdata.com/products/influxdb-overview/"&gt;InfluxDB&lt;/a&gt;, the leading time series database in the world. When it comes to time series data use cases, the 1.x and 2.x iterations of InfluxDB are great for metrics. They’re able to handle analytics use cases to a certain extent, but there was always a danger of high-cardinality data impacting database performance.&lt;/p&gt;

&lt;p&gt;The vision for InfluxDB is not to simply master metrics, but to provide solutions for all time series use cases. To achieve this, developers needed to solve the cardinality problem. Doing so would throw open the floodgates for  &lt;a href="https://www.influxdata.com/what-is-time-series-data/"&gt;time series data&lt;/a&gt;  and InfluxDB.&lt;/p&gt;

&lt;p&gt;As developers sought solutions for the cardinality problem, it became clear that to achieve their desired end they needed to rewrite significant portions of InfluxDB’s core. They needed to build a columnar database and, as a company with roots in, and a commitment to open source, turned to Apache Arrow for the columnar framework of the new database version. Versions 1.x and 2.x were written in Go, but for this new stack InfluxData founder and CTO Paul Dix saw an opportunity to try something different. Enter Rust.&lt;/p&gt;

&lt;h2 id="why-rust"&gt;Why Rust?&lt;/h2&gt;

&lt;p&gt;Rust has many attractive features for developers. The real-time nature of time series data brings with it significant performance demands. Rust has the inherent performance capabilities to support the characteristics of time series data and use cases. For example, Rust relies on  &lt;a href="https://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html"&gt;fearless concurrency&lt;/a&gt;. This is an approach to systems programming that enforces discipline around different programming paradigms that helps developers mitigate or eliminate subtle bugs in their code. Another benefit of this fearless concurrency approach is that it makes applications easy to refactor without introducing new bugs. The borrow checker is another critical aspect of Rust. It helps users manage memory and initializes all variables before using them. This prevents users from unintentionally using the same value more than once.&lt;/p&gt;

&lt;p&gt;Some additional perks of using Rust include the fact that its libraries can export a foreign function interface (FFI) compatible with many different programming languages. This provides extensibility and interoperability that makes Rust a major potential value-add to a wide range of applications. Rust uses the Crates.io packaging system, which gives developers everything they need right out of the box. In Rust, errors are first-class citizens and developers don’t have to deal with a garbage collector.&lt;/p&gt;

&lt;p&gt;Rust also gives developers more control over runtimes than many other languages. Its async/await tool is much more advanced than order languages like JavaScript. In JavaScript, for example, users can’t control the order of asynchronous functions when they execute in Node.js. Async runtimes are runtimes optimized to execute async functions in specific environments. In Rust, however, developers have granular control over the execution order of asynchronous functions using async runtimes.&lt;/p&gt;

&lt;p&gt;This just scratches the surface for the advantages of Rust. However, memory management and runtime control are two contributing factors that led to InfluxData’s decision to build its new database engine in Rust.&lt;/p&gt;

&lt;h2 id="rust-challenges"&gt;Rust challenges&lt;/h2&gt;

&lt;p&gt;While Rust presents a lot of advantages, it has its share of challenges as well. The most significant is that it has a high learning curve. It is a uniquely designed programming language, complete with its own design patterns. In some cases, these unique qualities are driven by the very capabilities that make Rust appealing, like the borrow checker. Developers with a background limited to dynamic programming languages, such as Python, Ruby or JavaScript tend to have a harder time learning Rust than developers with a background in static programming languages, like C++ or Swift.&lt;/p&gt;

&lt;p&gt;Another sticking point that developers must adapt to is Rust’s lengthy compile time. This puts pressure on developers to write code that optimizes compile time. But the uphill climb might just be worth it because Dix believes that developers and companies will write more and more high-performance server software in Rust moving forward.&lt;/p&gt;

&lt;h2 id="supporting-a-shift-to-rust"&gt;Supporting a shift to Rust&lt;/h2&gt;

&lt;p&gt;Hiring seasoned Rust developers may not always be an option as demand for them continues to increase. So, it’s important for individuals and companies alike to tap into available resources that will help mitigate the language’s steep learning curve. Rust is an open source language with a growing community supporting it, so leaning on the community is a great starting point for motivated developers.&lt;/p&gt;

&lt;h2 id="rust-results"&gt;Rust results&lt;/h2&gt;

&lt;p&gt;InfluxData set out to expand the analytical capability of its leading time series database and used Rust to accomplish that task. InfluxDB 3.0 is the result of years of research and development. It takes several key database concepts and applies them to the time series use case. Columnar databases aren’t new. Neither is the idea of separating storage and compute. But combining these concepts for the time series use case results in a database that can drive both monitoring and real-time analytics projects at scale.&lt;/p&gt;

&lt;p&gt;InfluxDB 3.0 can handle data with unlimited cardinality, can scale compute and storage separately and supports native SQL queries. Its  &lt;a href="https://www.influxdata.com/resources/InfluxDB-3-0-vs-oss-tech-paper/"&gt;performance gains&lt;/a&gt;  compared to previous versions of InfluxDB OSS are seismic. With a “hot” storage tier for leading-edge data, users can perform real-time analytics. And the combination of a columnar database and the use of  &lt;a href="https://www.influxdata.com/glossary/apache-parquet/"&gt;Apache Parquet&lt;/a&gt;  as its persistence format ushers in drastic data compression gains. Using low-cost cloud object storage for “cold” data can save users up to 90% on storage costs, all while enabling them to keep more, high-granularity data for longer periods.&lt;/p&gt;

&lt;p&gt;Rust was a key difference maker in the creation of InfluxDB 3.0. While the decision to rewrite the database core was a major one, the end results speak for themselves. Thanks to Rust, InfluxDB is poised to remain atop the time series category for the foreseeable future.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cloud2.influxdata.com/signup"&gt;Try InfluxDB for yourself&lt;/a&gt;  and see what a difference Rust makes.&lt;/p&gt;
</description>
      <pubDate>Mon, 09 Oct 2023 07:35:00 +0000</pubDate>
      <link>https://www.influxdata.com/blog/a-long-time-ago-on-a-server-far-far-away/</link>
      <guid isPermaLink="true">https://www.influxdata.com/blog/a-long-time-ago-on-a-server-far-far-away/</guid>
      <category>Use Cases</category>
      <category>Developer</category>
      <author>Jason Myers (InfluxData)</author>
    </item>
  </channel>
</rss>
