Nightingale can integrate with various collectors such as Categraf, Telegraf, Alloy, Datadog-agent, etc. These collectors push monitoring data to Nightingale, which then forwards it to a TSDB.
As an alerting engine, Nightingale does not need to be tightly integrated with any collector. It connects directly to various data sources, periodically queries them according to user-configured alert rules, and performs alert evaluation.
In other words: if you have already collected all kinds of monitoring data and stored them in a TSDB, just configure that TSDB as a data source in Nightingale, and Nightingale can query the data directly. None of the collectors discussed in this chapter are required.
However, many new users have not yet built their own collection capability. We therefore provide several collector integration options to help users get started quickly. Note that Nightingale still does not provide storage capability — these collectors push data to Nightingale, and Nightingale forwards the data to a TSDB.
Nightingale’s configuration file etc/config.toml contains a [[Pushgw.Writers]] section, which is used to configure the TSDB addresses. After receiving data, Nightingale forwards it to these addresses via the Prometheus remote write protocol.
Common Questions
Q1: Which collector should I choose?
A:
- Categraf: General-purpose first choice;
- Telegraf: Continue using if you already have it deployed;
- Datadog Agent: For users migrating from Datadog;
- Node Exporter / various Exporters: Pure Prometheus ecosystem; n9e ingests them via the Prometheus data source.
Q2: Can multiple collectors be mixed?
A: Yes. Each collector writes to its own data source, and n9e ingests them per data source. They do not conflict with each other.