mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 10:14:09 +02:00
rename
This commit is contained in:
parent
76da726559
commit
40560f2129
11 changed files with 68 additions and 69 deletions
|
|
@ -43,5 +43,5 @@ jobs:
|
|||
- run: nix build .#${{ matrix.target }}
|
||||
- uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
||||
with:
|
||||
name: palantir-${{ matrix.target }}
|
||||
path: result/bin/palantir${{ matrix.binary-suffix }}
|
||||
name: sidewindow-${{ matrix.target }}
|
||||
path: result/bin/sidewindow${{ matrix.binary-suffix }}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,6 @@ jobs:
|
|||
uses: https://github.com/svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: result/bin/palantir${{ matrix.binary-suffix }}
|
||||
asset_name: palantir-${{ matrix.target }}${{ matrix.binary-suffix }}
|
||||
file: result/bin/sidewindow${{ matrix.binary-suffix }}
|
||||
asset_name: sidewindow-${{ matrix.target }}${{ matrix.binary-suffix }}
|
||||
tag: ${{ github.ref }}
|
||||
|
|
|
|||
66
Cargo.lock
generated
66
Cargo.lock
generated
|
|
@ -1289,39 +1289,6 @@ version = "3.5.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
|
||||
|
||||
[[package]]
|
||||
name = "palantir"
|
||||
version = "1.3.1"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"bollard",
|
||||
"clap",
|
||||
"color-eyre",
|
||||
"ctrlc",
|
||||
"dotenvy",
|
||||
"futures-util",
|
||||
"hostname 0.4.0",
|
||||
"if-addrs 0.12.0",
|
||||
"libc",
|
||||
"libmdns",
|
||||
"nvml-wrapper",
|
||||
"once_cell",
|
||||
"os-thread-local",
|
||||
"procfs",
|
||||
"regex",
|
||||
"serde",
|
||||
"sysconf",
|
||||
"sysinfo",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
"warp",
|
||||
"winapi 0.3.9",
|
||||
"winreg",
|
||||
"wmi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "percent-encoding"
|
||||
version = "2.3.1"
|
||||
|
|
@ -1617,6 +1584,39 @@ dependencies = [
|
|||
"lazy_static",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sidewindow"
|
||||
version = "1.3.1"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"bollard",
|
||||
"clap",
|
||||
"color-eyre",
|
||||
"ctrlc",
|
||||
"dotenvy",
|
||||
"futures-util",
|
||||
"hostname 0.4.0",
|
||||
"if-addrs 0.12.0",
|
||||
"libc",
|
||||
"libmdns",
|
||||
"nvml-wrapper",
|
||||
"once_cell",
|
||||
"os-thread-local",
|
||||
"procfs",
|
||||
"regex",
|
||||
"serde",
|
||||
"sysconf",
|
||||
"sysinfo",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
"warp",
|
||||
"winapi 0.3.9",
|
||||
"winreg",
|
||||
"wmi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "slab"
|
||||
version = "0.4.9"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[package]
|
||||
name = "palantir"
|
||||
name = "sidewindow"
|
||||
version = "1.3.1"
|
||||
authors = ["Robin Appelman <robin@icewind.nl>"]
|
||||
edition = "2021"
|
||||
|
|
|
|||
24
README.md
24
README.md
|
|
@ -1,4 +1,4 @@
|
|||
# Palantir
|
||||
# Sidewindow
|
||||
|
||||
Opinionated system metrics exporter for prometheus
|
||||
|
||||
|
|
@ -14,11 +14,11 @@ Opinionated system metrics exporter for prometheus
|
|||
## Usage
|
||||
|
||||
- Download the binary for your architecture from the
|
||||
[releases](https://github.com/icewind1991/palantir/releases/) and place it at
|
||||
`/usr/local/bin/palantir`
|
||||
- Place the [palantir.service](palantir.service) file in `/etc/systemd/system/`
|
||||
- Create the `palantir` user: `sudo useradd -m palantir`
|
||||
- Start enable enable the server: `sudo systemctl enable --now palantir`
|
||||
[releases](https://codeberg.org/icewind/sidewindow/releases/) and place it at
|
||||
`/usr/local/bin/sidewindow`
|
||||
- Place the [sidewindow.service](sidewindow.service) file in `/etc/systemd/system/`
|
||||
- Create the `sidewindow` user: `sudo useradd -m sidewindow`
|
||||
- Start enable enable the server: `sudo systemctl enable --now sidewindow`
|
||||
- Metrics will be available at `localhost:5665/metrics`
|
||||
|
||||
Some stats require additional permissions described below.
|
||||
|
|
@ -27,7 +27,7 @@ Some stats require additional permissions described below.
|
|||
|
||||
In recent kernel versions, precise power monitoring is only accessible to root
|
||||
users to prevent using it as a side-channel attack. In order to get the power
|
||||
monitoring output you'll need to give the `palantir` user access to this data
|
||||
monitoring output you'll need to give the `sidewindow` user access to this data
|
||||
using the following steps.
|
||||
|
||||
- Create a group using
|
||||
|
|
@ -52,26 +52,26 @@ using the following steps.
|
|||
- Add your user to the group
|
||||
|
||||
```
|
||||
sudo usermod -a -G powermonitoring palantir
|
||||
sudo usermod -a -G powermonitoring sidewindow
|
||||
```
|
||||
|
||||
- Verify that you can read energy usage
|
||||
|
||||
```
|
||||
sudo su - palantir -c 'cat /sys/class/powercap/intel-rapl:0:0/energy_uj'
|
||||
sudo su - sidewindow -c 'cat /sys/class/powercap/intel-rapl:0:0/energy_uj'
|
||||
```
|
||||
|
||||
## Docker monitoring permissions
|
||||
|
||||
To enable monitoring of docker containers, add the `palantir` user to the
|
||||
To enable monitoring of docker containers, add the `sidewindow` user to the
|
||||
`docker` group
|
||||
|
||||
```bash
|
||||
sudo usermod -a -G docker palantir
|
||||
sudo usermod -a -G docker sidewindow
|
||||
```
|
||||
|
||||
## Windows support
|
||||
|
||||
Palantir has limited windows support out of the box, additional sensors can be
|
||||
Sidewindow has limited windows support out of the box, additional sensors can be
|
||||
enabled by running
|
||||
[LibreHardwareMonitor](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor).
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
};
|
||||
outputs = {mill-scale, ...}:
|
||||
mill-scale ./. {
|
||||
packages.palantir = import ./package.nix;
|
||||
packages.sidewindow = import ./package.nix;
|
||||
|
||||
crossTargets = [
|
||||
"x86_64-pc-windows-gnu"
|
||||
|
|
@ -30,9 +30,9 @@
|
|||
...
|
||||
}: {
|
||||
imports = [./module.nix];
|
||||
config = lib.mkIf config.services.palantir.enable {
|
||||
config = lib.mkIf config.services.sidewindow.enable {
|
||||
nixpkgs.overlays = [outputs.overlays.default];
|
||||
services.palantir.package = lib.mkDefault pkgs.palantir;
|
||||
services.sidewindow.package = lib.mkDefault pkgs.sidewindow;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
10
module.nix
10
module.nix
|
|
@ -5,10 +5,10 @@
|
|||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.services.palantir;
|
||||
cfg = config.services.sidewindow;
|
||||
in {
|
||||
options.services.palantir = {
|
||||
enable = mkEnableOption "Enables the palantir service";
|
||||
options.services.sidewindow = {
|
||||
enable = mkEnableOption "Enables the sidewindow service";
|
||||
|
||||
port = mkOption rec {
|
||||
type = types.int;
|
||||
|
|
@ -73,7 +73,7 @@ in {
|
|||
|
||||
services.udev.packages = [cfg.package];
|
||||
|
||||
systemd.services."palantir" = {
|
||||
systemd.services."sidewindow" = {
|
||||
wantedBy = ["multi-user.target"];
|
||||
after = ["systemd-networkd-wait-online.service"];
|
||||
path = lib.optional cfg.zfs pkgs.zfs;
|
||||
|
|
@ -93,7 +93,7 @@ in {
|
|||
|
||||
serviceConfig = {
|
||||
Restart = "on-failure";
|
||||
ExecStart = "${cfg.package}/bin/palantir";
|
||||
ExecStart = "${cfg.package}/bin/sidewindow";
|
||||
DynamicUser = true;
|
||||
PrivateTmp = true;
|
||||
ProtectSystem = "strict";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
final: prev: {
|
||||
palantir = final.callPackage ./package.nix {};
|
||||
sidewindow = final.callPackage ./package.nix {};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
coreutils,
|
||||
lib,
|
||||
|
|
@ -9,8 +8,8 @@
|
|||
src = sourceByRegex ./. ["Cargo.*" "(src|benches)(/.*)?"];
|
||||
version = (fromTOML (readFile ./Cargo.toml)).package.version;
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "palantir";
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "sidewindow";
|
||||
|
||||
inherit src version;
|
||||
|
||||
|
|
@ -22,7 +21,7 @@ in
|
|||
|
||||
postInstall = ''
|
||||
mkdir -p $out/lib/udev/rules.d/
|
||||
echo 'SUBSYSTEM=="powercap", ACTION=="add", RUN+="${coreutils}/bin/chgrp -R powermonitoring /sys%p", RUN+="${coreutils}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-palantir.rules
|
||||
echo 'SUBSYSTEM=="powercap", ACTION=="change", ENV{TRIGGER}!="none", RUN+="${coreutils}/bin/chgrp -R powermonitoring /sys%p", RUN+="${coreutils}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-palantir.rules
|
||||
echo 'SUBSYSTEM=="powercap", ACTION=="add", RUN+="${coreutils}/bin/chgrp -R powermonitoring /sys%p", RUN+="${coreutils}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-sidewindow.rules
|
||||
echo 'SUBSYSTEM=="powercap", ACTION=="change", ENV{TRIGGER}!="none", RUN+="${coreutils}/bin/chgrp -R powermonitoring /sys%p", RUN+="${coreutils}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-sidewindow.rules
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
[Unit]
|
||||
Description = palantir
|
||||
Description = sidewindow
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=palantir
|
||||
User=sidewindow
|
||||
Environment=PORT=5665
|
||||
ExecStart=/usr/local/bin/palantir
|
||||
ExecStart=/usr/local/bin/sidewindow
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
ProtectHome=true
|
||||
|
|
@ -4,8 +4,8 @@ use color_eyre::{Report, Result};
|
|||
use futures_util::pin_mut;
|
||||
use futures_util::StreamExt;
|
||||
use libmdns::Responder;
|
||||
use palantir::docker::{get_docker, stat, Container};
|
||||
use palantir::{get_metrics, Sensors};
|
||||
use sidewindow::docker::{get_docker, stat, Container};
|
||||
use sidewindow::{get_metrics, Sensors};
|
||||
use std::sync::Arc;
|
||||
use std::time::Duration;
|
||||
use tokio::runtime::Handle;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue