The only agent that thinks for itself

Autonomous Monitoring with self-learning AI built-in, operating independently across your entire stack.

Unlimited Metrics & Logs
Machine learning & MCP
5% CPU, 150MB RAM
3GB disk, >1 year retention
800+ integrations, zero config
Dashboards, alerts out of the box
> Discover Netdata Agents

Centralized metrics streaming and storage

Aggregate metrics from multiple agents into centralized Parent nodes for unified monitoring across your infrastructure.

Stream from unlimited agents
Long-term data retention
High availability clustering
Data replication & backup
Scalable architecture
Enterprise-grade security
> Learn about Parents

Fully managed cloud platform

Access your monitoring data from anywhere with our SaaS platform. No infrastructure to manage, automatic updates, and global availability.

Zero infrastructure management
99.9% uptime SLA
Global data centers
Automatic updates & patches
Enterprise SSO & RBAC
SOC2 & ISO certified
> Explore Netdata Cloud

Deploy Netdata Cloud in your infrastructure

Run the full Netdata Cloud platform on-premises for complete data sovereignty and compliance with your security policies.

Complete data sovereignty
Air-gapped deployment
Custom compliance controls
Private network integration
Dedicated support team
Kubernetes & Docker support
> Learn about Cloud On-Premises

Powerful, intuitive monitoring interface

Modern, responsive UI built for real-time troubleshooting with customizable dashboards and advanced visualization capabilities.

Real-time chart updates
Customizable dashboards
Dark & light themes
Advanced filtering & search
Responsive on all devices
Collaboration features
> Explore Netdata UI

Monitor on the go

Native iOS and Android apps bring full monitoring capabilities to your mobile device with real-time alerts and notifications.

iOS & Android apps
Push notifications
Touch-optimized interface
Offline data access
Biometric authentication
Widget support
> Download apps

The future of infrastructure observability

See our strategic direction across AI-native observability, full-stack signals, operational intelligence, and enterprise platform maturity.

AI-native observability
Full-stack signal coverage
Operational intelligence
Enterprise platform maturity
Agent releases every 6 weeks
Cloud continuous delivery
> Explore Product Roadmap

Best energy efficiency

True real-time per-second

100% automated zero config

Centralized observability

Multi-year retention

High availability built-in

Zero maintenance

Always up-to-date

Enterprise security

Complete data control

Air-gap ready

Compliance certified

Millisecond responsiveness

Infinite zoom & pan

Works on any device

Native performance

Instant alerts

Monitor anywhere

AI-native observability

Continuous delivery

Open source foundation

80% Faster Incident Resolution

AI-powered troubleshooting from detection, to root cause and blast radius identification, to reporting.

True Real-Time and Simple, even at Scale

Linearly and infinitely scalable full-stack observability, that can be deployed even mid-crisis.

90% Cost Reduction, Full Fidelity

Instead of centralizing the data, Netdata distributes the code, eliminating pipelines and complexity.

See and Map Your Entire Network

Live topology, flow analytics, and SNMP device and trap monitoring — unified with your full-stack observability.

Control Without Surrender

SOC 2 Type 2 certified with every metric kept on your infrastructure.

Integrations

800+ collectors and notification channels, auto-discovered and ready out of the box.

800+ data collectors
Auto-discovery & zero config
Cloud, infra, app protocols
Notifications out of the box
> Explore integrations
Real Results
46% Cost Reduction

Reduced monitoring costs by 46% while cutting staff overhead by 67%.

— Leonardo Antunez, Codyas

Zero Pipeline

No data shipping. No central storage costs. Query at the edge.

From Our Users
"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

No Query Language

Point-and-click troubleshooting. No PromQL, no LogQL, no learning curve.

Enterprise Ready
67% Less Staff, 46% Cost Cut

Enterprise efficiency without enterprise complexity—real ROI from day one.

— Leonardo Antunez, Codyas

SOC 2 Type 2 Certified

Zero data egress. Only metadata reaches the cloud. Your metrics stay on your infrastructure.

Full Coverage
800+ Collectors

Auto-discovered and configured. No manual setup required.

Any Notification Channel

Slack, PagerDuty, Teams, email, webhooks—all built-in.

Built for the People Who Get Paged

Because 3am alerts deserve instant answers, not hour-long hunts.

Every Industry Has Rules. We Master Them.

See how healthcare, finance, and government teams cut monitoring costs 90% while staying audit-ready.

Monitor Any Technology. Configure Nothing.

Install the agent. It already knows your stack.
From Our Users
"A Rare Unicorn"

Netdata gives more than you invest in it. A rare unicorn that obeys the Pareto rule.

— Eduard Porquet Mateu, TMB Barcelona

99% Downtime Reduction

Reduced website downtime by 99% and cloud bill by 30% using Netdata alerts.

— Falkland Islands Government

Real Savings
30% Cloud Cost Reduction

Optimized resource allocation based on Netdata alerts cut cloud spending by 30%.

— Falkland Islands Government

46% Cost Cut

Reduced monitoring staff by 67% while cutting operational costs by 46%.

— Codyas

Real Coverage
"Plugin for Everything"

Netdata has agent capacity or a plugin for everything, including Windows and Kubernetes.

— Eduard Porquet Mateu, TMB Barcelona

"Out-of-the-Box"

So many out-of-the-box features! I mostly don't have to develop anything.

— Simon Beginn, LANCOM Systems

Real Speed
Troubleshooting in 30 Seconds

From 2-3 minutes to 30 seconds—instant visibility into any node issue.

— Matthew Artist, Nodecraft

20% Downtime Reduction

20% less downtime and 40% budget optimization from out-of-the-box monitoring.

— Simon Beginn, LANCOM Systems

Pay per Node. Unlimited Everything Else.

One price per node. Unlimited metrics, logs, users, and retention. No per-GB surprises.

Free tier—forever
No metric limits or caps
Retention you control
Cancel anytime
> See pricing plans

What's Your Monitoring Really Costing You?

Most teams overpay by 40-60%. Let's find out why.

Expose hidden metric charges
Calculate tool consolidation
Customers report 30-67% savings
Results in under 60 seconds
> See what you're really paying

Your Infrastructure Is Unique. Let's Talk.

Because monitoring 10 nodes is different from monitoring 10,000.

On-prem & air-gapped deployment
Volume pricing & agreements
Architecture review for your scale
Compliance & security support
> Start a conversation

Monitoring That Sells Itself

Deploy in minutes. Impress clients in hours. Earn recurring revenue for years.

30-second live demos close deals
Zero config = zero support burden
Competitive margins & deal protection
Response in 48 hours
> Apply to partner

Per-Second Metrics at Homelab Prices

Same engine, same dashboards, same ML. Just priced for tinkerers.

Community: Free forever · 5 nodes · non-commercial
Homelab: $90/yr · unlimited nodes · fair usage
> Get the Homelab Plan

$1,000 Per Referral. Unlimited Referrals.

Your colleagues get 10% off. You get 10% commission. Everyone wins.

10% of subscriptions, up to $1,000 each
Track earnings inside Netdata Cloud
PayPal/Venmo payouts in 3-4 weeks
No caps, no complexity
> Get your referral link
Cost Proof
40% Budget Optimization

"Netdata's significant positive impact" — LANCOM Systems

Calculate Your Savings

Compare vs Datadog, Grafana, Dynatrace

Savings Proof
46% Cost Reduction

"Cut costs by 46%, staff by 67%" — Codyas

30% Cloud Bill Savings

"Reduced cloud bill by 30%" — Falkland Islands Gov

Enterprise Proof
"Better Than Combined Alternatives"

"Better observability with Netdata than combining other tools." — TMB Barcelona

Real Engineers, <24h Response

DPA, SLAs, on-prem, volume pricing

Why Partners Win
Demo Live Infrastructure

One command, 30 seconds, real data—no sandbox needed

Zero Tickets, High Margins

Auto-config + per-node pricing = predictable profit

Homelab Ready
Free Video Course

8-episode Netdata tutorial by LearnLinux.tv

76k+ GitHub Stars

3rd most starred monitoring project

Worth Recommending
Product That Delivers

Customers report 40-67% cost cuts, 99% downtime reduction

Zero Risk to Your Rep

Free tier lets them try before they buy

AI Support Assistant, Available 24/7

Nedi has access to all official documentation, source code, and resources. Ask any question about Netdata—responds in your language.

Deployment & configuration
Troubleshooting & sizing
Alerts & notifications
Evidence-based answers
> Ask Nedi now

Never Fight Fires Alone

Docs, community, and expert help—pick your path to resolution.

Learn.netdata.cloud docs
Discord, Forums, GitHub
Premium support available
> Get answers now

60 Seconds to First Dashboard

One command to install. Zero config. 850+ integrations documented.

Linux, Windows, K8s, Docker
Auto-discovers your stack
> Read our documentation

76,000+ Engineers Strong

615+ contributors. 1.5M daily downloads. One mission: simplify observability.

Per-Second. 90% Cheaper. Data Stays Home.

Side-by-side comparisons: costs, real-time granularity, and data sovereignty for every major tool.

See why teams switch from Datadog, Prometheus, Grafana, and more.

> Browse all comparisons
Edge-Native Observability, Born Open Source
Per-second visibility, ML on every metric, and data that never leaves your infrastructure.
Founded in 2016
615+ contributors worldwide
Remote-first, engineering-driven
Open source first
> Read our story
Promises We Publish—and Prove
12 principles backed by open code, independent validation, and measurable outcomes.
Open source, peer-reviewed
Zero config, instant value
Data sovereignty by design
Aligned pricing, no surprises
> See all 12 principles
Edge-Native, AI-Ready, 100% Open
76k+ stars. Full ML, AI, and automation—GPLv3+, not premium add-ons.
76,000+ GitHub stars
GPLv3+ licensed forever
ML on every metric, included
Zero vendor lock-in
> Explore our open source
Build Real-Time Observability for the World
Remote-first team shipping per-second monitoring with ML on every metric.
Remote-first, fully distributed
Open source (76k+ stars)
Challenging technical problems
Your code on millions of systems
> See open roles
Meet the Team Behind Netdata
Conferences, meetups, and tradeshows where you can see Netdata in action and talk to the engineers who build it.
Live demos and deep dives
Book 1-on-1 meetings
Talks and panel sessions
Event recaps and photos
> See all events
Talk to a Netdata Human in <24 Hours
Sales, partnerships, press, or professional services—real engineers, fast answers.
Discuss your observability needs
Pricing and volume discounts
Partnership opportunities
Media and press inquiries
> Book a conversation
Your Data. Your Rules.
On-prem data, cloud control plane, transparent terms.
Trust & Scale
76,000+ GitHub Stars

One of the most popular open-source monitoring projects

SOC 2 Type 2 Certified

Enterprise-grade security and compliance

Data Sovereignty

Your metrics stay on your infrastructure

Validated
University of Amsterdam

"Most energy-efficient monitoring solution" — ICSOC 2023, peer-reviewed

ADASTEC (Autonomous Driving)

"Doesn't miss alerts—mission-critical trust for safety software"

Community Stats
615+ Contributors

Global community improving monitoring for everyone

1.5M+ Downloads/Day

Trusted by teams worldwide

GPLv3+ Licensed

Free forever, fully open source agent

Why Join?
Remote-First

Work from anywhere, async-friendly culture

Impact at Scale

Your work helps millions of systems

$ guides / fluentd
FLUENTD · OPERATIONS PLAYBOOK

Fluentd's buffer is the fulcrum: fill it, and the default is to drop your logs in silence

A Ruby event router where every log flows input to parser to filter to buffer to output, a buffer of chunks absorbs every destination hiccup in between, and when that buffer fills the out-of-the-box behavior is to discard new events without a single counter moving. We trace how the pipeline behaves under backpressure, where 'the process is up' stops meaning 'logs are flowing', and what to do when the buffer, the parser, or the memory wall gives way.

"

Fluentd's defaults get you collecting logs in an afternoon, then hand you a set of cliff-edges that most teams only discover during an incident — usually the one where they need the logs that were lost.

The defaults work. Until a destination slows down, chunks pile up in a buffer that often defaults to memory, and the worker is OOM-killed with every buffered log gone. Until that buffer hits total_limit_size and — with overflow_action at its throw_exception default — new events are dropped silently, no counter you are watching moving. Until a log line stops matching your parser, Fluentd logs pattern not matched, and quietly discards it. Until a destination flaps, the log fills with failed to flush the buffer, retries back off to thirty minutes out, and the pipeline is effectively dead while still 'retrying'. Until in_tail runs the host out of descriptors with too many open files and stops watching new logs without a word.

These guides are written for engineers who already run Fluentd, not for people learning what a log router is. The goal is the mental model of how events actually move from input to output, why 'the process is up' is not 'logs are flowing', the failure patterns that keep recurring — backpressure, silent drops, OOM, poison pills, rotation loss — the monitoring story that catches them before a postmortem needs the data you dropped, and the runbooks you wish someone had handed you before your last gap in the logs.

How Fluentd actually runs in production

Fluentd is not just a log forwarder. It is a Ruby event router where inputs, a parser, filters, and a tag-matching router feed a buffer of chunks, a pool of flush threads drains that buffer to outputs, and a retry engine sits behind every delivery. Most production failures live in the buffer between ingestion and delivery — or in the input tracking upstream of it — not inside any single plugin.

01
inputs / sources
Each input plugin runs in its own thread: <code>in_tail</code> follows files, <code>in_forward</code> and <code>in_syslog</code> and <code>in_http</code> take the network. <code>in_tail</code> holds an open file descriptor per watched file and tracks its byte offset in a <code>pos_file</code>. Inputs turn raw data into timestamped, tagged records.
INPUT
02
parser
Each record is parsed by a format (regex, JSON, LTSV). A line that does not match logs <code>pattern not matched</code> and is dropped; a pathological regex can backtrack catastrophically and hang the process on one bad line.
PARSE
03
filter chain
An optional ordered pipeline of filters (<code>grep</code>, <code>record_transformer</code>, <code>parser</code>) that transform, enrich, or drop records. Ruby code blocks here run under the GVL and are a common CPU bottleneck.
FILTER
04
event router
The core dispatch loop matches each event's tag against <code>&lt;match&gt;</code> directives. Single-threaded per worker. Misrouted tags send events to a null or wrong output — every rate looks healthy while the data never lands where it is needed.
ROUTE
05
buffer: stage → queue
The most operationally significant component. Events accumulate in chunks that move staged → queued → flushing → purged (or retried). Memory-backed (fast, lost on crash) or file-backed (durable). At <code>total_limit_size</code>, <code>overflow_action</code> decides: drop, block, or throw.
BUFFER
06
flush threads + output
Each output uses <code>flush_thread_count</code> threads to drain queued chunks to the destination. Network writes release the GVL and parallelize; serialization does not. <code>write_count</code>, <code>emit_records</code>, and <code>flush_time_count</code> live here.
OUTPUT
07
retry engine + secondary
When a flush fails, chunks retry with exponential backoff. After <code>retry_timeout</code> (default 72h) or <code>retry_max_times</code>, a chunk is discarded or written to a <code>&lt;secondary&gt;</code>. The backoff interval, not the retry count, tells you whether the pipeline is really recovering.
RETRY
08
Ruby VM + workers
Everything runs on CRuby under one GVL per worker process. GC pauses block event processing; RSS grows and plateaus. Multi-worker spreads load across cores, each worker with its own buffers and its own <code>monitor_agent</code> port (24220 + worker_id).
RUNTIME

Why this matters: 'Fluentd is dropping logs' can come from a parser that stopped matching, a buffer full under a throw_exception overflow, an OOM-killed worker that lost its memory buffer, in_tail that lost a rotated file, a destination stuck in exponential-backoff retry, or file-descriptor exhaustion. The symptom rhymes but each layer has a different signal — and a different fix.

The failures you'll actually see

Most Fluentd incidents fall into a small set of recurring patterns. Recognise the shape, and triage gets dramatically faster.

CRITICAL

The backpressure cascade

A destination goes slow or unreachable. Flushes fail, retries begin with exponential backoff, and chunks accumulate because new events keep arriving but nothing drains. write_count stops incrementing while the buffer climbs toward its limit. Left alone, it ends at the overflow wall — and what happens there depends entirely on overflow_action.

  • failed to flush the buffer in the Fluentd log
  • retry_count incrementing while write_count is flat
  • buffer_queue_length growing, buffer_stage_length steady
  • buffer_available_buffer_space_ratios falling toward zero
Investigate
CRITICAL

Silent data loss

Logs are missing downstream and nothing paged. The buffer filled under overflow_action: throw_exception (the default) and dropped events at the input, or drop_oldest_chunk discarded them, or the parser rejected them. No single reliable counter increments. The only proof is a gap between what went in and what arrived — usually found hours later, in the postmortem.

  • input emit_records exceeds output emit_records over a window
  • buffer_available_buffer_space_ratios at or near 0%
  • emit_error_count or drop_oldest_chunk_count nonzero
  • Downstream store missing a whole time range or source
Investigate
CRITICAL

The OOM kill

A memory-backed buffer grows unbounded, or a plugin leaks, or tiny chunks spawn millions of Ruby objects — RSS climbs until the OOM killer terminates the process. Every log still in a memory buffer is gone. In Kubernetes the cgroup limit is a hard ceiling with no warning, and the pod enters CrashLoopBackOff.

  • Process RSS climbing monotonically, not plateauing
  • oom-kill / Out of memory entries in dmesg
  • Process uptime resetting; buffered data missing after restart
  • CrashLoopBackOff on a Fluentd DaemonSet pod
Investigate
ACTIVE

File descriptor exhaustion

Tailed files plus buffer chunk files plus output connections cross the process ulimit. The next open() fails with EMFILE: in_tail silently stops watching new files, the buffer cannot create chunks, and outputs cannot connect. The default limit of 1024 is nowhere near enough for a real deployment.

  • too many open files in the Fluentd log
  • Open FD count near ulimit -Sn
  • tracked_file_count dropping unexpectedly
  • New file watches or output connections failing
Investigate
ACTIVE

The parse-failure blackout

An application changes its log format and the parser regex no longer matches. Fluentd logs pattern not matched and drops the record — silent, input-level data loss. Input emit_records for that source falls or flatlines while the file itself keeps growing, and a whole source quietly vanishes from downstream.

  • pattern not matched warnings in the log
  • input emit_records dropping after a deploy or format change
  • Log file still growing while its events stop arriving
  • One source missing downstream, others fine
Investigate
IMMINENT

The buffer overflow wall

The buffer reaches total_limit_size and Fluentd raises BufferOverflowError — 'buffer space has too many data'. This is the terminal state of the cascade: a cliff-edge where new events can no longer be accepted, and with the default overflow action they are simply lost. Everything upstream stalls behind a buffer that has nowhere left to put anything.

  • BufferOverflowError / buffer space has too many data
  • buffer_available_buffer_space_ratios at 0%
  • buffer_total_queued_size pinned at total_limit_size
  • input emit_records stalling as events are rejected
Investigate
Choosing a tool

Best Fluentd Monitoring Tools: 6 Top Picks for 2026

A ranked review of the tools teams actually shortlist here, what each one is genuinely good at, and how the pricing behaves as you scale.

Fluentd monitoring maturity levels

Fluentd observability works in four practical levels. Each is a complete operation, not a stepping stone. Pick the level that matches how much your log pipeline matters. Most production pipelines should land at the second level.

Level 1: Survival

Know that something is wrong

Survival monitoring is the floor. With these signals you can answer one question: is Fluentd alive and is it actively losing data? You will not learn where the pipeline is degrading, but you will learn that it broke. Survival is enough for dev collectors and non-critical pipelines.

  • Process alive (all workers) A dead collector is a blind spot in every downstream system.
  • emit_error_count Any nonzero rate means events were permanently dropped.
  • retry_count sustained nonzero The output has been failing repeatedly, not just once.
  • Process RSS trend Rising toward the memory limit is the OOM precursor.
  • Fluentd's own error log The log collector's logs are the last place teams look.

Level 2: Operational

Diagnose most incidents on your own

Operational monitoring is what most production pipelines should target. Survival tells you something is wrong; operational tells you what. With this coverage your team can usually diagnose an incident on its own: backpressure, retries, buffer pressure, and the input/output imbalance that quietly loses data.

  • monitor_agent responsive (24220) A process that is up but hung answers a PID check, not this.
  • buffer_queue_length + total_queued_size Per output. Growing queue is the backpressure signal.
  • retry_count per output Which destination is failing, not just that one is.
  • buffer_available_buffer_space_ratios The runway to overflow, per output plugin.
  • input vs output emit_records A sustained deficit is data loss, in real numbers.
  • Process RSS vs the memory limit Alert at 80% in containers; the OOM ceiling is hard.
  • Open FDs vs ulimit Cliff-edge: at the limit, in_tail and outputs fail.
  • File-buffer disk usage A full buffer partition takes system logs down with it.

Level 3: Mature

Catch problems before they become incidents

Mature monitoring catches problems before they wake anyone. Flush latency creeping, in_tail falling behind, a retry backed off to thirty minutes, a certificate a week from expiry. None of these page you on day one. They become the incident on day thirty.

  • in_tail position lag pos_file offset trailing the file size means it can't keep up.
  • Average flush time flush_time_count / write_count rising precedes retries.
  • slow_flush_count Individual flushes past slow_flush_log_threshold (20s).
  • buffer_oldest_timekey Age of the oldest buffered data, not just its volume.
  • Buffer stage vs queue Distinguishes healthy batching from real backpressure.
  • drop_oldest_chunk / write_secondary Confirmed loss, and primary-output failover.
  • Retry backoff state retry.next_time tells you if it is really recovering.
  • Output TLS certificate expiry An expired cert stops every flush at the same instant.

Level 4: Expert

Reactive instrumentation after real incidents

Expert signals enter your stack the day after a specific incident proved you needed them. Ruby GC pauses, GVL contention, kernel UDP drops, per-worker imbalance, pos_file inode drift. Most teams never need every signal here. Add the ones your incident history says you do.

  • Ruby GC statistics Major-GC frequency and pause time under memory pressure.
  • Per-thread CPU (GVL contention) One thread pegged at a core while flush threads wait.
  • Kernel UDP buffer drops /proc/net/udp drops for syslog/forward before Fluentd sees it.
  • inotify watch count vs limit Exhausted watches force in_tail into slow polling.
  • Per-worker metric decomposition One struggling worker hidden by aggregate numbers.
  • pos_file inode validation Inode in the pos_file vs the current file after rotation.
  • Output connection-state distribution CLOSE_WAIT buildup means the destination is dropping us.
  • Config file integrity Tampering can redirect or silence logs; not a metric.

Operating mistakes worth avoiding

The traps Fluentd teams keep falling into. Each has a clear, well-known fix. Most teams only learn it after an incident.

Assuming 'buffer full' means 'blocking'

The default <code>overflow_action</code> is <code>throw_exception</code>, which means a full buffer silently <em>drops</em> new events, not blocks them. Most teams never realise this because no reliable counter tracks the drops. Choose <code>overflow_action</code> deliberately for each output, and watch <code>buffer_available_buffer_space_ratios</code> as an early warning.

Monitoring process-alive and nothing else

A running Fluentd with a full buffer and a stalled output is as useless as a dead one — logs are not flowing. 'Is the process up?' is a survival check, not an operational one. Monitor <code>output emit_records</code> and <code>buffer_queue_length</code>, and compare input to output rates.

Treating the buffer as a single number

Teams watch 'buffer usage' without splitting <code>buffer_stage_length</code> (chunks filling — normal batching) from <code>buffer_queue_length</code> (chunks waiting to flush — backpressure). High stage is fine; high queue is the problem. Collapsed into one number, the distinction that matters disappears.

Never watching emit_error_count

Both playbooks call this the single most under-monitored signal. With <code>overflow_action: drop_oldest_chunk</code>, data loss is completely invisible except through this counter. Teams discover they lost hours of logs during the very incident those logs would have explained.

Running memory-backed buffers in production

Memory buffers are fast and often the default, so teams never switch — until the output has a bad day, the buffer fills, and the OOM killer takes the process and every buffered event with it. File-backed buffers trade some I/O for durability across restarts. In production that trade is almost always worth it.

Leaving the file-descriptor limit at 1024

The default <code>ulimit -n</code> of 1024 is inadequate for any non-trivial deployment. Teams chase mysterious <code>in_tail</code> failures and intermittent output errors for hours before finding FD exhaustion — and the errors are not always explicit, because <code>in_tail</code> often just stops watching files. Set 65536+ in the systemd unit or the pod security context.

Never comparing input and output rates

Teams graph input rate and output rate on separate panels and never subtract one from the other. A sustained 5% deficit is 5% of every log lost — millions of events a week. The input/output balance is the single most telling health metric of the entire pipeline.

Setting up Fluentd and never testing rotation

Teams verify Fluentd works, then never test what happens when <code>logrotate</code> runs. The first rotation may work; the second may not, because it is timing-dependent. <code>copytruncate</code> is inherently racy with <code>in_tail</code>; <code>create</code> rotation with an adequate <code>rotate_wait</code> is safer — but only if it was actually tested.

Fluentd runbooks in this section

Each guide is a focused runbook for one symptom or topic. Pick one when you have an incident, or use the categories to learn the area.

WHERE TO GO NEXT

Setting up Fluentd monitoring, or putting out a fire?

If you're starting from scratch, the monitoring checklist is the path of least regret. If you're mid-incident, jump straight to the symptom that matches what you're seeing.