mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 03:23:29 +03:00
nixos/prometheus-exporters/ebpf: init
This commit is contained in:
parent
61c3f916a7
commit
f9aba46b57
4 changed files with 68 additions and 0 deletions
|
@ -228,6 +228,10 @@
|
||||||
|
|
||||||
- [CookCLI](https://cooklang.org/cli/) Server, a web UI for cooklang recipes.
|
- [CookCLI](https://cooklang.org/cli/) Server, a web UI for cooklang recipes.
|
||||||
|
|
||||||
|
- [Prometheus eBPF Exporter](https://github.com/cloudflare/ebpf_exporter),
|
||||||
|
Prometheus exporter for custom eBPF metrics. Available as
|
||||||
|
[services.prometheus.exporters.ebpf](#opt-services.prometheus.exporters.ebpf.enable).
|
||||||
|
|
||||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||||
|
|
||||||
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
|
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
|
||||||
|
|
|
@ -65,6 +65,7 @@ let
|
||||||
"dnssec"
|
"dnssec"
|
||||||
"domain"
|
"domain"
|
||||||
"dovecot"
|
"dovecot"
|
||||||
|
"ebpf"
|
||||||
"fastly"
|
"fastly"
|
||||||
"flow"
|
"flow"
|
||||||
"fritz"
|
"fritz"
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
options,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.prometheus.exporters.ebpf;
|
||||||
|
inherit (lib)
|
||||||
|
mkOption
|
||||||
|
types
|
||||||
|
concatStringsSep
|
||||||
|
;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
port = 9435;
|
||||||
|
extraOpts = {
|
||||||
|
names = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [ ];
|
||||||
|
example = [ "timers" ];
|
||||||
|
description = ''
|
||||||
|
List of eBPF programs to load
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
serviceOpts = {
|
||||||
|
serviceConfig = {
|
||||||
|
AmbientCapabilities = [
|
||||||
|
"CAP_BPF"
|
||||||
|
"CAP_DAC_READ_SEARCH"
|
||||||
|
"CAP_PERFMON"
|
||||||
|
];
|
||||||
|
CapabilityBoundingSet = [
|
||||||
|
"CAP_BPF"
|
||||||
|
"CAP_DAC_READ_SEARCH"
|
||||||
|
"CAP_PERFMON"
|
||||||
|
];
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.prometheus-ebpf-exporter}/bin/ebpf_exporter \
|
||||||
|
--config.dir=${pkgs.prometheus-ebpf-exporter}/examples \
|
||||||
|
--config.names=${concatStringsSep "," cfg.names} \
|
||||||
|
--web.listen-address ${cfg.listenAddress}:${toString cfg.port}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -407,6 +407,20 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ebpf = {
|
||||||
|
exporterConfig = {
|
||||||
|
enable = true;
|
||||||
|
names = [ "timers" ];
|
||||||
|
};
|
||||||
|
exporterTest = ''
|
||||||
|
wait_for_unit("prometheus-ebpf-exporter.service")
|
||||||
|
wait_for_open_port(9435)
|
||||||
|
succeed(
|
||||||
|
"curl -sSf http://localhost:9435/metrics | grep 'ebpf_exporter_enabled_configs{name=\"timers\"} 1'"
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
fastly = {
|
fastly = {
|
||||||
exporterConfig = {
|
exporterConfig = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue