For me netdata could not start: ```logs time=2025-03-18T21:27:21.023+02:00 comm=netdata source=daemon level=info errno="2, No such file or directory" tid=257369 msg="CONFIG: cannot load cloud config '/var/lib/netdata/cloud.d/cloud.conf'. Running with internal defaults." time=2025-03-18T21:27:21.024+02:00 comm=netdata source=daemon level=alert errno="2, No such file or directory" tid=257369 msg="Cannot create required directory '/var/cache/netdata'" 0 netdata 0x0000000104845cb0 netdata_logger_fatal + 356 1 netdata 0x00000001044d8734 verify_or_create_required_directory + 84 2 netdata 0x00000001044d718c set_global_environment + 524 3 netdata 0x00000001044db294 netdata_main + 1920 4 netdata 0x00000001044dd178 main + 12 5 dyld 0x0000000184394274 start + 2840 ```
62 lines
1.5 KiB
Nix
62 lines
1.5 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
with lib;
|
|
let
|
|
cfg = config.services.netdata;
|
|
|
|
in {
|
|
meta.maintainers = [ lib.maintainers.rsrohitsingh682 or "rsrohitsingh682" ];
|
|
|
|
options = {
|
|
services.netdata = {
|
|
enable = mkEnableOption "Netdata daemon";
|
|
|
|
package = lib.mkPackageOption pkgs "netdata" {};
|
|
|
|
config = mkOption {
|
|
type = types.lines;
|
|
default = "";
|
|
description = "Custom configuration for Netdata";
|
|
};
|
|
|
|
workDir = mkOption {
|
|
type = types.path;
|
|
default = "/var/lib/netdata";
|
|
description = "Working directory for Netdata";
|
|
};
|
|
|
|
logDir = mkOption {
|
|
type = types.path;
|
|
default = "/var/log/netdata";
|
|
description = "Log directory for Netdata";
|
|
};
|
|
|
|
cacheDir = mkOption {
|
|
type = types.path;
|
|
default = "/var/cache/netdata";
|
|
description = "Cache directory for Netdata";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
environment.systemPackages = [ cfg.package ];
|
|
|
|
launchd.daemons.netdata = {
|
|
serviceConfig = {
|
|
Label = "netdata";
|
|
KeepAlive = true;
|
|
WorkingDirectory = cfg.workDir;
|
|
StandardErrorPath = "${cfg.logDir}/netdata.log";
|
|
StandardOutPath = "${cfg.logDir}/netdata.log";
|
|
};
|
|
command = lib.getExe cfg.package;
|
|
};
|
|
|
|
environment.etc."netdata/netdata.conf".text = cfg.config;
|
|
|
|
system.activationScripts.preActivation.text = ''
|
|
mkdir -p ${cfg.workDir}
|
|
mkdir -p ${cfg.cacheDir}
|
|
'';
|
|
};
|
|
}
|