update python version and add build job
All checks were successful
Disk Report Image / build-and-push-ddns (push) Successful in 22s
All checks were successful
Disk Report Image / build-and-push-ddns (push) Successful in 22s
This commit is contained in:
30
.gitea/workflows/disk_report.yaml
Normal file
30
.gitea/workflows/disk_report.yaml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
name: Disk Report Image
|
||||||
|
run-name: Build and Push the Disk Report Application Image
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- disk_report.py
|
||||||
|
- .gitea/workflows/disk_report.yaml
|
||||||
|
schedule:
|
||||||
|
- cron: '@daily'
|
||||||
|
jobs:
|
||||||
|
build-and-push-ddns:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: gitea.ref == 'refs/heads/main'
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Login to Gitea Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: gitea.reeseapps.com
|
||||||
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||||
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: https://github.com/docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
context: ${{ gitea.workspace }}
|
||||||
|
file: ${{ gitea.workspace }}/disk_report.Containerfile
|
||||||
|
push: true
|
||||||
|
tags: "gitea.reeseapps.com/services/disk_report:latest,gitea.reeseapps.com/services/disk_report:${{gitea.sha}}"
|
||||||
|
no-cache: true
|
||||||
@@ -1 +1 @@
|
|||||||
3.10
|
3.14
|
||||||
|
|||||||
16
README.md
16
README.md
@@ -1,9 +1,21 @@
|
|||||||
# LLM Server Monitor
|
# LLM Server Monitor
|
||||||
|
|
||||||
## summarize.sh
|
## Disk Report
|
||||||
|
|
||||||
|
### Run with UV
|
||||||
|
|
||||||
|
Make sure you have python uv installed.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python post_llama.py --message "summarize this document" ./example.txt
|
btrfs filesystem usage /btrfs/pool0 | grep 'Overall:' -A 12 > /tmp/input.txt
|
||||||
|
uv run disk_report.py --message "summarize this document" /tmp/input.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run with container
|
||||||
|
|
||||||
|
```bash
|
||||||
|
btrfs filesystem usage /btrfs/pool0 | grep 'Overall:' -A 12 > /tmp/input.txt
|
||||||
|
podman run -it --rm -v /tmp/input.txt:/input/input.txt:z gitea.reeseapps.com/services/disk_report:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
## Prompts
|
## Prompts
|
||||||
|
|||||||
14
disk_report.Containerfile
Normal file
14
disk_report.Containerfile
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
FROM ghcr.io/astral-sh/uv:alpine3.22
|
||||||
|
|
||||||
|
# Copy the project into the image
|
||||||
|
COPY . /app
|
||||||
|
COPY example.txt /input/input.txt
|
||||||
|
|
||||||
|
# Disable development dependencies
|
||||||
|
ENV UV_NO_DEV=1
|
||||||
|
|
||||||
|
# Sync the project into a new environment, asserting the lockfile is up to date
|
||||||
|
WORKDIR /app
|
||||||
|
RUN uv sync --locked
|
||||||
|
|
||||||
|
CMD ["uv", "run", "post_llama.py", "/input/input.txt"]
|
||||||
@@ -92,7 +92,13 @@ def main() -> None:
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-m",
|
"-m",
|
||||||
"--message",
|
"--message",
|
||||||
default="Please analyse the attached file.",
|
default="""
|
||||||
|
You are an expert BTRFS system administrator. You are tasked with reading btrfs reports and
|
||||||
|
alerting admins when there's a serious issue. Attached is a btrfs summary. If everything looks
|
||||||
|
good reply with a short message saying as such. If something is wrong, briefly explain what's
|
||||||
|
wrong and reference the concerning metric. Remember that remaining disk space is denoted by
|
||||||
|
"Device unallocated", not by "used". High used percentages in Data and Metadata (>90%) are expected and normal.
|
||||||
|
""",
|
||||||
help="User message to send alongside the file.",
|
help="User message to send alongside the file.",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@@ -139,7 +145,7 @@ def main() -> None:
|
|||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
try:
|
try:
|
||||||
json_resp = resp.json()
|
json_resp = resp.json()
|
||||||
print(json.dumps(json_resp["choices"][0]["message"]["content"], indent=2, ensure_ascii=False))
|
print(json_resp["choices"][0]["message"]["content"])
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# Not JSON – just dump raw text
|
# Not JSON – just dump raw text
|
||||||
print(resp.text)
|
print(resp.text)
|
||||||
184
example.txt
184
example.txt
@@ -1,114 +1,80 @@
|
|||||||
Pool 0
|
Pool 0
|
||||||
Overall:
|
[/dev/mapper/luks-pool0-5dbed936-760e-487e-911a-a5f0239aa2ad].write_io_errs 0
|
||||||
Device size: 34.57TiB
|
[/dev/mapper/luks-pool0-5dbed936-760e-487e-911a-a5f0239aa2ad].read_io_errs 0
|
||||||
Device allocated: 22.82TiB
|
[/dev/mapper/luks-pool0-5dbed936-760e-487e-911a-a5f0239aa2ad].flush_io_errs 0
|
||||||
Device unallocated: 11.75TiB
|
[/dev/mapper/luks-pool0-5dbed936-760e-487e-911a-a5f0239aa2ad].corruption_errs 0
|
||||||
Device missing: 0.00B
|
[/dev/mapper/luks-pool0-5dbed936-760e-487e-911a-a5f0239aa2ad].generation_errs 0
|
||||||
Device slack: 0.00B
|
[/dev/mapper/luks-pool0-e0bdc76d-d4c6-4273-8ac5-21bbc768134c].write_io_errs 0
|
||||||
Used: 22.75TiB
|
[/dev/mapper/luks-pool0-e0bdc76d-d4c6-4273-8ac5-21bbc768134c].read_io_errs 0
|
||||||
Free (estimated): 5.90TiB (min: 5.90TiB)
|
[/dev/mapper/luks-pool0-e0bdc76d-d4c6-4273-8ac5-21bbc768134c].flush_io_errs 0
|
||||||
Free (statfs, df): 4.97TiB
|
[/dev/mapper/luks-pool0-e0bdc76d-d4c6-4273-8ac5-21bbc768134c].corruption_errs 0
|
||||||
Data ratio: 2.00
|
[/dev/mapper/luks-pool0-e0bdc76d-d4c6-4273-8ac5-21bbc768134c].generation_errs 0
|
||||||
Metadata ratio: 2.00
|
[/dev/mapper/luks-pool0-193fa31b-5399-41ab-90dc-495143b4a5f1].write_io_errs 0
|
||||||
Global reserve: 512.00MiB (used: 0.00B)
|
[/dev/mapper/luks-pool0-193fa31b-5399-41ab-90dc-495143b4a5f1].read_io_errs 0
|
||||||
Multiple profiles: no
|
[/dev/mapper/luks-pool0-193fa31b-5399-41ab-90dc-495143b4a5f1].flush_io_errs 0
|
||||||
|
[/dev/mapper/luks-pool0-193fa31b-5399-41ab-90dc-495143b4a5f1].corruption_errs 0
|
||||||
Data,RAID1: Size:11.38TiB, Used:11.35TiB (99.74%)
|
[/dev/mapper/luks-pool0-193fa31b-5399-41ab-90dc-495143b4a5f1].generation_errs 0
|
||||||
/dev/dm-10 5.43TiB
|
[/dev/mapper/luks-pool0-2781f419-ce60-4d5c-b584-147865a991a9].write_io_errs 0
|
||||||
/dev/dm-15 3.62TiB
|
[/dev/mapper/luks-pool0-2781f419-ce60-4d5c-b584-147865a991a9].read_io_errs 0
|
||||||
/dev/dm-9 7.00TiB
|
[/dev/mapper/luks-pool0-2781f419-ce60-4d5c-b584-147865a991a9].flush_io_errs 0
|
||||||
/dev/dm-5 286.00GiB
|
[/dev/mapper/luks-pool0-2781f419-ce60-4d5c-b584-147865a991a9].corruption_errs 0
|
||||||
/dev/dm-6 284.00GiB
|
[/dev/mapper/luks-pool0-2781f419-ce60-4d5c-b584-147865a991a9].generation_errs 0
|
||||||
/dev/dm-8 3.88TiB
|
[/dev/mapper/luks-pool0-1c9a755a-2a81-4a2f-9bd7-6b6d7caaa523].write_io_errs 0
|
||||||
/dev/dm-4 2.27TiB
|
[/dev/mapper/luks-pool0-1c9a755a-2a81-4a2f-9bd7-6b6d7caaa523].read_io_errs 0
|
||||||
|
[/dev/mapper/luks-pool0-1c9a755a-2a81-4a2f-9bd7-6b6d7caaa523].flush_io_errs 0
|
||||||
Metadata,RAID1: Size:27.00GiB, Used:21.15GiB (78.34%)
|
[/dev/mapper/luks-pool0-1c9a755a-2a81-4a2f-9bd7-6b6d7caaa523].corruption_errs 0
|
||||||
/dev/dm-10 15.00GiB
|
[/dev/mapper/luks-pool0-1c9a755a-2a81-4a2f-9bd7-6b6d7caaa523].generation_errs 0
|
||||||
/dev/dm-15 10.00GiB
|
[/dev/mapper/luks-pool0-0ccc4298-d949-4c58-bd19-804f06d18e8a].write_io_errs 0
|
||||||
/dev/dm-9 12.00GiB
|
[/dev/mapper/luks-pool0-0ccc4298-d949-4c58-bd19-804f06d18e8a].read_io_errs 0
|
||||||
/dev/dm-8 8.00GiB
|
[/dev/mapper/luks-pool0-0ccc4298-d949-4c58-bd19-804f06d18e8a].flush_io_errs 0
|
||||||
/dev/dm-4 9.00GiB
|
[/dev/mapper/luks-pool0-0ccc4298-d949-4c58-bd19-804f06d18e8a].corruption_errs 0
|
||||||
|
[/dev/mapper/luks-pool0-0ccc4298-d949-4c58-bd19-804f06d18e8a].generation_errs 0
|
||||||
System,RAID1: Size:32.00MiB, Used:1.61MiB (5.03%)
|
[/dev/mapper/luks-pool0-058dd176-2958-4c99-a7e6-4cc3b0ed7875].write_io_errs 0
|
||||||
/dev/dm-8 32.00MiB
|
[/dev/mapper/luks-pool0-058dd176-2958-4c99-a7e6-4cc3b0ed7875].read_io_errs 0
|
||||||
/dev/dm-4 32.00MiB
|
[/dev/mapper/luks-pool0-058dd176-2958-4c99-a7e6-4cc3b0ed7875].flush_io_errs 0
|
||||||
|
[/dev/mapper/luks-pool0-058dd176-2958-4c99-a7e6-4cc3b0ed7875].corruption_errs 0
|
||||||
Unallocated:
|
[/dev/mapper/luks-pool0-058dd176-2958-4c99-a7e6-4cc3b0ed7875].generation_errs 0
|
||||||
/dev/dm-10 1.83TiB
|
|
||||||
/dev/dm-15 1.83TiB
|
|
||||||
/dev/dm-9 2.08TiB
|
|
||||||
/dev/dm-5 1.54TiB
|
|
||||||
/dev/dm-6 1.54TiB
|
|
||||||
/dev/dm-8 1.57TiB
|
|
||||||
/dev/dm-4 1.36TiB
|
|
||||||
|
|
||||||
Pool 1
|
Pool 1
|
||||||
Overall:
|
[/dev/mapper/luks-pool1-e81bbc30-30e8-4deb-a0bf-b475cc157e54].write_io_errs 0
|
||||||
Device size: 7.28TiB
|
[/dev/mapper/luks-pool1-e81bbc30-30e8-4deb-a0bf-b475cc157e54].read_io_errs 0
|
||||||
Device allocated: 722.02GiB
|
[/dev/mapper/luks-pool1-e81bbc30-30e8-4deb-a0bf-b475cc157e54].flush_io_errs 0
|
||||||
Device unallocated: 6.57TiB
|
[/dev/mapper/luks-pool1-e81bbc30-30e8-4deb-a0bf-b475cc157e54].corruption_errs 0
|
||||||
Device missing: 0.00B
|
[/dev/mapper/luks-pool1-e81bbc30-30e8-4deb-a0bf-b475cc157e54].generation_errs 0
|
||||||
Device slack: 0.00B
|
[/dev/mapper/luks-pool1-1efde407-1875-4f41-a25d-2b1d001003fb].write_io_errs 0
|
||||||
Used: 692.25GiB
|
[/dev/mapper/luks-pool1-1efde407-1875-4f41-a25d-2b1d001003fb].read_io_errs 0
|
||||||
Free (estimated): 3.30TiB (min: 3.30TiB)
|
[/dev/mapper/luks-pool1-1efde407-1875-4f41-a25d-2b1d001003fb].flush_io_errs 0
|
||||||
Free (statfs, df): 2.56TiB
|
[/dev/mapper/luks-pool1-1efde407-1875-4f41-a25d-2b1d001003fb].corruption_errs 0
|
||||||
Data ratio: 2.00
|
[/dev/mapper/luks-pool1-1efde407-1875-4f41-a25d-2b1d001003fb].generation_errs 0
|
||||||
Metadata ratio: 2.00
|
[/dev/mapper/luks-pool1-1012ac86-2be3-4146-912d-17f2df2b9383].write_io_errs 0
|
||||||
Global reserve: 512.00MiB (used: 0.00B)
|
[/dev/mapper/luks-pool1-1012ac86-2be3-4146-912d-17f2df2b9383].read_io_errs 0
|
||||||
Multiple profiles: no
|
[/dev/mapper/luks-pool1-1012ac86-2be3-4146-912d-17f2df2b9383].flush_io_errs 0
|
||||||
|
[/dev/mapper/luks-pool1-1012ac86-2be3-4146-912d-17f2df2b9383].corruption_errs 0
|
||||||
Data,RAID1: Size:357.00GiB, Used:343.92GiB (96.34%)
|
[/dev/mapper/luks-pool1-1012ac86-2be3-4146-912d-17f2df2b9383].generation_errs 0
|
||||||
/dev/dm-2 60.00GiB
|
[/dev/mapper/luks-pool1-16625cef-acf0-40f3-badc-57c7f8cd9750].write_io_errs 0
|
||||||
/dev/dm-14 60.00GiB
|
[/dev/mapper/luks-pool1-16625cef-acf0-40f3-badc-57c7f8cd9750].read_io_errs 0
|
||||||
/dev/dm-13 60.00GiB
|
[/dev/mapper/luks-pool1-16625cef-acf0-40f3-badc-57c7f8cd9750].flush_io_errs 0
|
||||||
/dev/dm-1 60.00GiB
|
[/dev/mapper/luks-pool1-16625cef-acf0-40f3-badc-57c7f8cd9750].corruption_errs 0
|
||||||
/dev/dm-12 357.00GiB
|
[/dev/mapper/luks-pool1-16625cef-acf0-40f3-badc-57c7f8cd9750].generation_errs 0
|
||||||
/dev/dm-7 59.00GiB
|
[/dev/mapper/luks-pool1-d03204fe-3121-4e20-9396-3fa73b836dbe].write_io_errs 0
|
||||||
/dev/dm-3 58.00GiB
|
[/dev/mapper/luks-pool1-d03204fe-3121-4e20-9396-3fa73b836dbe].read_io_errs 0
|
||||||
|
[/dev/mapper/luks-pool1-d03204fe-3121-4e20-9396-3fa73b836dbe].flush_io_errs 0
|
||||||
Metadata,RAID1: Size:4.00GiB, Used:2.21GiB (55.25%)
|
[/dev/mapper/luks-pool1-d03204fe-3121-4e20-9396-3fa73b836dbe].corruption_errs 0
|
||||||
/dev/dm-2 1.00GiB
|
[/dev/mapper/luks-pool1-d03204fe-3121-4e20-9396-3fa73b836dbe].generation_errs 0
|
||||||
/dev/dm-14 1.00GiB
|
[/dev/mapper/luks-pool1-ca9e67e6-f652-4a54-851e-8e5d785554d0].write_io_errs 0
|
||||||
/dev/dm-12 3.00GiB
|
[/dev/mapper/luks-pool1-ca9e67e6-f652-4a54-851e-8e5d785554d0].read_io_errs 0
|
||||||
/dev/dm-7 1.00GiB
|
[/dev/mapper/luks-pool1-ca9e67e6-f652-4a54-851e-8e5d785554d0].flush_io_errs 0
|
||||||
/dev/dm-3 2.00GiB
|
[/dev/mapper/luks-pool1-ca9e67e6-f652-4a54-851e-8e5d785554d0].corruption_errs 0
|
||||||
|
[/dev/mapper/luks-pool1-ca9e67e6-f652-4a54-851e-8e5d785554d0].generation_errs 0
|
||||||
System,RAID1: Size:8.00MiB, Used:80.00KiB (0.98%)
|
[/dev/mapper/luks-pool1-08ddca5a-06ff-4b2b-a272-3c95c68142b3].write_io_errs 0
|
||||||
/dev/dm-7 8.00MiB
|
[/dev/mapper/luks-pool1-08ddca5a-06ff-4b2b-a272-3c95c68142b3].read_io_errs 0
|
||||||
/dev/dm-3 8.00MiB
|
[/dev/mapper/luks-pool1-08ddca5a-06ff-4b2b-a272-3c95c68142b3].flush_io_errs 0
|
||||||
|
[/dev/mapper/luks-pool1-08ddca5a-06ff-4b2b-a272-3c95c68142b3].corruption_errs 0
|
||||||
Unallocated:
|
[/dev/mapper/luks-pool1-08ddca5a-06ff-4b2b-a272-3c95c68142b3].generation_errs 0
|
||||||
/dev/dm-2 870.50GiB
|
|
||||||
/dev/dm-14 870.50GiB
|
|
||||||
/dev/dm-13 871.50GiB
|
|
||||||
/dev/dm-1 871.50GiB
|
|
||||||
/dev/dm-12 1.47TiB
|
|
||||||
/dev/dm-7 871.49GiB
|
|
||||||
/dev/dm-3 871.49GiB
|
|
||||||
|
|
||||||
Backup 0
|
Backup 0
|
||||||
Overall:
|
[/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1].write_io_errs 0
|
||||||
Device size: 16.37TiB
|
[/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1].read_io_errs 0
|
||||||
Device allocated: 14.42TiB
|
[/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1].flush_io_errs 0
|
||||||
Device unallocated: 1.95TiB
|
[/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1].corruption_errs 0
|
||||||
Device missing: 0.00B
|
[/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1].generation_errs 0
|
||||||
Device slack: 0.00B
|
|
||||||
Used: 14.37TiB
|
|
||||||
Free (estimated): 2.00TiB (min: 1.03TiB)
|
|
||||||
Free (statfs, df): 2.00TiB
|
|
||||||
Data ratio: 1.00
|
|
||||||
Metadata ratio: 2.00
|
|
||||||
Global reserve: 512.00MiB (used: 0.00B)
|
|
||||||
Multiple profiles: no
|
|
||||||
|
|
||||||
Data,single: Size:14.38TiB, Used:14.33TiB (99.64%)
|
|
||||||
/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1 14.38TiB
|
|
||||||
|
|
||||||
Metadata,DUP: Size:22.00GiB, Used:21.01GiB (95.51%)
|
|
||||||
/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1 44.00GiB
|
|
||||||
|
|
||||||
System,DUP: Size:8.00MiB, Used:1.52MiB (18.95%)
|
|
||||||
/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1 16.00MiB
|
|
||||||
|
|
||||||
Unallocated:
|
|
||||||
/dev/mapper/luks-backup0-4ade71f9-e9fe-4a9c-84ea-12fc716626c1 1.95TiB
|
|
||||||
Reference in New Issue
Block a user