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 / logstash / logstash-dateparsefailure ▌

Operations Guides

Logstash _dateparsefailure: timestamp formats that stop parsing

The _dateparsefailure tag appears when Logstash’s date filter cannot parse a timestamp field against any of its configured match patterns. The event still flows through the pipeline and reaches its output. @timestamp stays at ingestion time instead of being set to the event’s actual time.

The result: time-based dashboards show gaps or misplaced data points, index lifecycle management operates on ingestion time so events land in the wrong time bucket or expire at the wrong time, and the issue can persist for days because throughput metrics stay green. The date filter tries each format string in the match array sequentially. The first successful parse wins. If none succeed, the filter appends its tag_on_failure tag (default _dateparsefailure) and leaves @timestamp unchanged.

The most common trigger is a source system changing its timestamp format after an upgrade or reconfiguration. Other causes: locale mismatches for month and day names, timezone handling errors, Daylight Saving Time edge cases, and format specifier differences between Joda-Time and java.time parser modes.

What this means

A _dateparsefailure tag is a silent correctness failure. Pipeline throughput looks normal because events are not dropped, filtered, or delayed. The events-in, events-out, and queue metrics all stay green. The only evidence is the tag itself and the gap between @timestamp and the source timestamp.

There is no direct metric in the Logstash stats API for the _dateparsefailure tag specifically. Detection relies on querying the downstream destination for the tag. The per-plugin stats may expose a failures counter for the date filter, but downstream inspection is the reliable method.

Blast radius depends on how many events carry the bad format. If a single high-volume source changes its timestamp format, a large percentage of events in the destination index may carry wrong timestamps without any throughput metric moving.

flowchart TD
    A["_dateparsefailure on events"] --> B{"Recent config deploy?"}
    B -->|Yes| C["Check date filter match patterns"]
    B -->|No| D["Source changed timestamp format"]
    C --> E{"All events or subset?"}
    E -->|All| F["Pattern syntax or locale issue"]
    E -->|Subset| G["New timestamp variant from source"]
    D --> H["Sample failed event timestamp field"]
    H --> I["Compare against configured match patterns"]
    I --> J["Add missing format to match array"]
    F --> K{"Contains month or day names?"}
    K -->|Yes| L["Check locale parameter"]
    K -->|No| M["Check timezone or DST gap"]

Common causes

CauseWhat it looks likeFirst thing to check
Source timestamp format changedSudden spike in tag rate from one source, often after a deployment on the source sideSample the raw timestamp field from a failed event
Locale mismatchPatterns with MMM or EEE (month or day names) fail; JVM locale is non-EnglishRun locale on the Logstash host and check the locale parameter in the date filter
Timezone not specifiedTimestamps without embedded offset fail or parse to wrong timeCheck whether the date filter has a timezone parameter set
DST gap timestampFailures spike once or twice per year at DST transition in affected timezoneCheck if failed timestamps fall in the spring-forward gap (for example, 02:00 in America/New_York on the transition date)
Joda-Time vs java.time specifier mismatchCustom patterns fail after switching to precision => "ns"Check which parser mode is active and verify format specifiers against the correct library
Fractional seconds beyond SSSTimestamps with more than 3 fractional digits fail in default (Joda-Time) modeCheck if the source emits nanosecond or microsecond precision

Quick checks

# Count _dateparsefailure tags in Elasticsearch (add auth as needed)
curl -s "localhost:9200/<index>/_count?q=tags:_dateparsefailure"

# Check the date filter configuration
grep -A 20 'date\s*{' /etc/logstash/conf.d/*.conf

# Inspect per-filter stats for the date filter
curl -sS http://127.0.0.1:9600/_node/stats/pipelines?pretty | \
  python3 -c "
import sys,json
pipelines = json.load(sys.stdin)['pipelines']
for pname, pdata in pipelines.items():
    for f in pdata.get('plugins',{}).get('filters',[]):
        if f.get('name') == 'date':
            evts = f.get('events', {})
            print(f'Pipeline: {pname}, Filter ID: {f.get(\"id\")}')
            print(f'  failures: {evts.get(\"failures\", \"not reported\")}')
            print(f'  in: {evts.get(\"in\", \"N/A\")}, out: {evts.get(\"out\", \"N/A\")}')
"

# Check Logstash logs for date parse errors
grep -i 'dateparsefailure\|date.*filter\|parsing.*date' /var/log/logstash/logstash-plain.log | tail -n 100

# Check the JVM default locale
locale

# Sample a failed event to see its raw timestamp
curl -s "localhost:9200/<index>/_search?size=1&q=tags:_dateparsefailure" | \
  python3 -c "import sys,json; h=json.load(sys.stdin)['hits']['hits']; print(json.dumps(h[0]['_source'], indent=2)) if h else print('No results')"

How to diagnose it

  1. Confirm the tag is present and quantify the scope. Query the downstream for _dateparsefailure tag count and compare it to total event count. A sudden spike after a known source-side deployment points to a format change. A steady low rate may indicate a long-standing mismatch that was never caught.

  2. Sample failed events to extract the raw timestamp. Pull a few events with the tag and look at the source timestamp field referenced in the date filter’s match parameter. Write down the exact format, including separators, timezone notation, and fractional second precision.

  3. Compare against configured patterns. Open the date filter configuration and compare the raw timestamp against each format string in the match array. Common mismatches: separator changes (space to T, slash to hyphen), timezone format changes (offset to abbreviation or vice versa), precision changes (added or removed fractional seconds), or date ordering changes.

  4. Check locale and timezone. If the timestamp contains month names (Jan, Feb) or day names, verify the locale parameter. If the JVM default locale is non-English and the filter has no explicit locale, month name parsing may fail. If timestamps lack a timezone offset, verify the timezone parameter is set.

  5. Test the fix before deploying. Use a Logstash config test to validate syntax: logstash -t -f /etc/logstash/conf.d/<file>.conf. This checks configuration syntax without starting the pipeline. If possible, replay a sample of the actual failed events through the updated filter locally.

Metrics and signals to monitor

SignalWhy it mattersWarning sign
_dateparsefailure tag rate at destinationDirect evidence of date parse failures; no direct API metric exists for this tagAny sudden increase above baseline, or any sustained non-zero rate on critical streams
Date filter failures (per-plugin stats)Filter-level failure count from the stats APICounter delta increasing per interval
Pipeline events-out rateConfirms throughput is unaffected (expected for this failure mode)Should remain normal; a drop would indicate a different problem
Config reload state (reloads.failures)A failed reload may leave an old date filter running while the team believes the fix was deployedNon-zero failures after a config deploy
Source timestamp format distributionDetects format drift before it becomes a parse failureNew format variants appearing in the source data

Fixes

Source timestamp format changed

Add the new format to the date filter’s match array. The filter tries formats in order, so keep existing formats and append the new one:

date {
  match => ["log_timestamp", "MMM dd yyyy HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"]
}

If you control the source, standardize on ISO 8601 and use the ISO8601 literal, which handles the format robustly; current plugin versions accept both period and comma as fractional-second separators and parse up to 9 fractional digits.

Locale mismatch

Set the locale parameter explicitly when timestamps contain month or day names:

date {
  match => ["log_timestamp", "MMM dd HH:mm:ss"]
  locale => "en"
}

The date filter docs state that when the platform default locale is non-English, an English parser is also used as a fallback, so MMM/EEE month and day patterns generally still parse even without an explicit locale; setting locale => "en" explicitly is still the reliable fix.

Timezone not specified

If timestamps lack an embedded timezone offset, set the timezone parameter to a canonical IANA timezone ID:

date {
  match => ["log_timestamp", "yyyy-MM-dd HH:mm:ss"]
  timezone => "America/New_York"
}

For sources that emit UTC timestamps without a trailing Z, set timezone => "UTC".

DST gap timestamps

The underlying Joda-Time library rejects timestamps that fall into a Daylight Saving Time gap. For example, 2019-03-10 02:00:00 in America/New_York does not exist because clocks spring forward from 01:59:59 to 03:00:00. If the source data is actually in UTC, set timezone => "UTC" to avoid the gap entirely.

Joda-Time vs java.time specifier mismatch

Custom format patterns use Joda-Time by default. Setting precision => "ns" switches to java.time for nanosecond precision, but the two libraries have different format specifiers:

  • Timezone ID: ZZZ in Joda-Time, VV in java.time
  • Year: y is year-of-era in both parsers; java.time treats u as the proleptic year and y as year-of-era, so if a pattern misbehaves after switching to java.time, use u for the year.

If you recently switched to precision => "ns" and parsing broke, verify that your format specifiers are valid for java.time.

Fractional seconds precision

The Joda-Time parser matches exactly the number of fractional second digits specified by SSS (3 digits). If the source emits more digits, the extra characters cause the remaining pattern to fail. For sources emitting nanosecond or microsecond precision, switch to java.time with precision => "ns" and adjust the pattern accordingly.

Timezone names cannot be parsed

The Joda-Time parser does not reliably parse timezone names like EST or PDT using the z specifier. Use Z, ZZ, or ZZZ for numeric offsets and timezone IDs instead. If the source emits timezone abbreviations, fix the source or use a mutate filter to convert the abbreviation to a numeric offset before the date filter.

Prevention

  • Alert on _dateparsefailure tag rate for time-critical streams. This is not exposed as a built-in Logstash API metric. Query the downstream destination on a schedule, or add a metrics filter in the pipeline to count tagged events.
  • List multiple formats in the match array. Keep old formats alongside new ones. The first successful parse wins, so extra entries carry negligible overhead.
  • Set locale and timezone explicitly. Do not rely on JVM defaults, which may differ between hosts or change after a JVM upgrade.
  • Coordinate with application teams on timestamp format changes. The most common trigger is a source-side deployment that changes the log format. Early communication lets you update the date filter proactively.
  • Test config changes against real data samples. Run logstash -t -f <config> for syntax validation, and if possible, replay a sample of actual events through the updated filter before deploying.

How Netdata helps

  • Per-second pipeline metrics: Netdata collects Logstash API metrics at per-second resolution, making the onset of date filter failures visible immediately rather than after a multi-minute polling delay.
  • Config reload correlation: If a config reload coincides with a change in event processing patterns, the reload metrics (reloads.successes, reloads.failures) help distinguish a deployment-induced problem from a source-side format change.
  • Per-pipeline visibility: In multi-pipeline deployments, per-pipeline metrics isolate which pipeline is affected, preventing aggregate metrics from masking a problem in one pipeline.
  • Anomaly detection on event rates: ML-based anomaly advisors can flag subtle shifts in event processing patterns that correlate with the start of parse failures, even when throughput technically stays constant.