project-writing-collectors

Standardize the development and maintenance of Netdata Agent data collection plugins and modules.

80.4k|6.6k|Updated Jun 17, 2013
One-click install
npx skills add https://github.com/netdata/netdata --skill project-writing-collectors
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: project-writing-collectors
Source: https://github.com/netdata/netdata/tree/main/.agents/skills/project-writing-collectors
Command: npx skills add https://github.com/netdata/netdata --skill project-writing-collectors

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill addresses the inconsistency and technical debt that arise when developing data collectors for the Netdata Agent, ensuring new integrations adhere to performance, cardinality, and dashboard-shaping standards.

Core Features & Use Cases

  • Framework Alignment: Provides the mental model and routing map for Go (go.d), C, and Rust plugin development.
  • Dashboard Shaping: Defines how to map upstream data into the NIDL (Nodes, Instances, Dimensions, Labels) framework for optimal UX.
  • Quality Assurance: Establishes mandatory criteria for hot-path performance, error handling, and configuration schema design to ensure production-grade stability.

Quick Start

Analyze my proposed collector implementation against the project-writing-collectors guidelines to ensure it meets the required performance and cardinality standards.

Frequently Asked Questions about project-writing-collectors

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I start writing a new Netdata go.d collector?

Begin by reading the framework-specific authoring guides in the repository, specifically the go.d V2 documentation, and mirror the structure of an existing, well-maintained collector in the same domain.

What is the NIDL framework in Netdata?

NIDL stands for Nodes, Instances, Dimensions, and Labels, serving as the conceptual model for how raw data is transformed into dashboard charts and metrics within the Netdata Agent.

How should I handle high-cardinality data in a collector?

Implement mandatory cardinality bounding using max_* limits and provide operator-driven selectors to ensure the dashboard remains usable and the Agent remains performant under load.

Why must I mark charts as obsolete?

Obsoleting charts for entities that no longer exist ensures the dashboard remains truthful, prevents alerts from binding to stale data, and optimizes resource usage for streaming and ML.

What is the recommended way to perform cross-plugin enrichment?

Use the netipc library for inter-plugin communication to avoid insecure practices like polling log files or opening private sockets, ensuring reliable and standardized data exchange.