110 lines
2 KiB
Markdown
110 lines
2 KiB
Markdown
# I2PD exporter
|
|
|
|
A basic prometheus exporter that exports miscellaneous data using the i2pcontrol protocol such as peers, data sent & received and so on...
|
|
Right now there are some problems with using exporter as the options for i2pd in nixpkgs are wrong... Therefore upon starting the program will error out with `InvalidPassword`. But it works alright on other systems
|
|
|
|
## How to use (Nix)
|
|
|
|
1. Import to your flake
|
|
|
|
```nix
|
|
{
|
|
description = "A simple NixOS flake";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
|
|
i2pd-exporter = {
|
|
url = "path:/home/grape/code/i2pdexporter";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
};
|
|
|
|
outputs =
|
|
{ self
|
|
, nixpkgs
|
|
, i2pd-exporter
|
|
, ...
|
|
}:
|
|
let
|
|
system = "x86_64-linux";
|
|
in
|
|
{
|
|
nixosConfigurations.server = nixpkgs.lib.nixosSystem
|
|
{
|
|
inherit system;
|
|
modules = [
|
|
./configuration.nix
|
|
|
|
i2pd-exporter.nixosModules.default
|
|
];
|
|
};
|
|
};
|
|
}
|
|
|
|
```
|
|
|
|
2. Enable I2PControl for I2PD
|
|
|
|
```nix
|
|
{pkgs, ...}:{
|
|
|
|
services.i2pd = {
|
|
enable = true;
|
|
proto.i2pControl = {
|
|
enable = true;
|
|
port = 7659;
|
|
name = "i2pcontrol";
|
|
address = "127.0.0.1";
|
|
};
|
|
};
|
|
}
|
|
```
|
|
|
|
3. Enable the exporter
|
|
|
|
```nix
|
|
{pkgs, ...}:{
|
|
services.prometheus.exporters.i2pd = {
|
|
enable = true;
|
|
port = 3321;
|
|
openFirewall = true;
|
|
routerAddress = "https://127.0.0.1:7650";
|
|
routerPassword = "itoopie";
|
|
};
|
|
}
|
|
```
|
|
|
|
4. Scrape via prometheus
|
|
|
|
```nix
|
|
{ pkgs, config, ... }: {
|
|
|
|
services.prometheus = {
|
|
enable = true;
|
|
|
|
scrapeConfigs = [
|
|
{
|
|
job_name = "i2p";
|
|
scrape_interval = "5s";
|
|
static_configs = [
|
|
{
|
|
targets = [ "localhost:${toString config.services.prometheus.exporters.i2pd.port}" ];
|
|
labels = { alias = "i2pd.server.local"; };
|
|
}
|
|
];
|
|
}
|
|
];
|
|
}
|
|
}
|
|
```
|
|
|
|
5. Import the grafana dashboard
|
|
**todo**
|
|
|
|
# Docker
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|