mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2025-01-08 22:57:42 +03:00
nixos/prometheus-buildkite-agent-exporter: init
This commit is contained in:
parent
fa09a124a7
commit
88fb6d25d8
@ -99,6 +99,14 @@
|
|||||||
<link linkend="opt-services.hockeypuck.enable">services.hockeypuck</link>.
|
<link linkend="opt-services.hockeypuck.enable">services.hockeypuck</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://github.com/buildkite/buildkite-agent-metrics">buildkite-agent-metrics</link>,
|
||||||
|
a command-line tool for collecting Buildkite agent metrics,
|
||||||
|
now has a Prometheus exporter available as
|
||||||
|
<link linkend="opt-services.prometheus.exporters.buildkite-agent.enable">services.prometheus.exporters.buildkite-agent</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-release-21.11-incompatibilities">
|
<section xml:id="sec-release-21.11-incompatibilities">
|
||||||
|
@ -30,6 +30,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||||||
|
|
||||||
- [Hockeypuck](https://github.com/hockeypuck/hockeypuck), a OpenPGP Key Server. Available as [services.hockeypuck](#opt-services.hockeypuck.enable).
|
- [Hockeypuck](https://github.com/hockeypuck/hockeypuck), a OpenPGP Key Server. Available as [services.hockeypuck](#opt-services.hockeypuck.enable).
|
||||||
|
|
||||||
|
- [buildkite-agent-metrics](https://github.com/buildkite/buildkite-agent-metrics), a command-line tool for collecting Buildkite agent metrics, now has a Prometheus exporter available as [services.prometheus.exporters.buildkite-agent](#opt-services.prometheus.exporters.buildkite-agent.enable).
|
||||||
|
|
||||||
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
|
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@ let
|
|||||||
"bird"
|
"bird"
|
||||||
"bitcoin"
|
"bitcoin"
|
||||||
"blackbox"
|
"blackbox"
|
||||||
|
"buildkite-agent"
|
||||||
"collectd"
|
"collectd"
|
||||||
"dnsmasq"
|
"dnsmasq"
|
||||||
"domain"
|
"domain"
|
||||||
|
@ -0,0 +1,64 @@
|
|||||||
|
{ config, lib, pkgs, options }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.prometheus.exporters.buildkite-agent;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
port = 9876;
|
||||||
|
extraOpts = {
|
||||||
|
tokenPath = mkOption {
|
||||||
|
type = types.nullOr types.path;
|
||||||
|
apply = final: if final == null then null else toString final;
|
||||||
|
description = ''
|
||||||
|
The token from your Buildkite "Agents" page.
|
||||||
|
|
||||||
|
A run-time path to the token file, which is supposed to be provisioned
|
||||||
|
outside of Nix store.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
interval = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "30s";
|
||||||
|
example = "1min";
|
||||||
|
description = ''
|
||||||
|
How often to update metrics.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
endpoint = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "https://agent.buildkite.com/v3";
|
||||||
|
description = ''
|
||||||
|
The Buildkite Agent API endpoint.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
queues = mkOption {
|
||||||
|
type = with types; nullOr (listOf str);
|
||||||
|
default = null;
|
||||||
|
example = literalExample ''[ "my-queue1" "my-queue2" ]'';
|
||||||
|
description = ''
|
||||||
|
Which specific queues to process.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
serviceOpts = {
|
||||||
|
script =
|
||||||
|
let
|
||||||
|
queues = concatStringsSep " " (map (q: "-queue ${q}") cfg.queues);
|
||||||
|
in
|
||||||
|
''
|
||||||
|
export BUILDKITE_AGENT_TOKEN="$(cat ${toString cfg.tokenPath})"
|
||||||
|
exec ${pkgs.buildkite-agent-metrics}/bin/buildkite-agent-metrics \
|
||||||
|
-backend prometheus \
|
||||||
|
-interval ${cfg.interval} \
|
||||||
|
-endpoint ${cfg.endpoint} \
|
||||||
|
${optionalString (cfg.queues != null) queues} \
|
||||||
|
-prometheus-addr "${cfg.listenAddress}:${toString cfg.port}" ${concatStringsSep " " cfg.extraFlags}
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = false;
|
||||||
|
RuntimeDirectory = "buildkite-agent-metrics";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user