Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

ffmpeg-Befehle: Video und Audio auf der Kommandozeile

ffmpeg ist das universelle Werkzeug für Audio- und Videoverarbeitung auf der Kommandozeile. Es konvertiert Formate, schneidet, skaliert, komprimiert, zieht Tonspuren heraus und streamt. Diese Referenz nennt die Befehle, die im Betrieb ständig gebraucht werden.

Grundschema

Der Aufruf folgt immer demselben Muster: ffmpeg [Optionen] -i eingabe [Optionen] ausgabe. Optionen vor -i betreffen die Eingabe, Optionen danach die Ausgabe. Diese Unterscheidung ist die häufigste Fehlerquelle.

# Formate und Codecs anzeigen
ffmpeg -formats
ffmpeg -codecs | grep -i h264
ffmpeg -encoders | grep -e libx264 -e libvpx

# Informationen zu einer Datei
ffprobe -hide_banner eingabe.mp4
ffprobe -v error -show_format -show_streams eingabe.mp4
ffprobe -v error -select_streams v:0 -show_entries stream=width,height,r_frame_rate -of csv=p=0 eingabe.mp4

Konvertieren

# MP4 nach WebM (Video und Audio)
ffmpeg -i eingabe.mp4 -c:v libvpx-vp9 -crf 32 -b:v 0 -c:a libopus ausgabe.webm

# H.264 mit Qualitätsziel (CRF 18-28, kleiner = besser)
ffmpeg -i eingabe.mov -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k ausgabe.mp4

# Für Web: schnelles Starten, Metadaten an den Anfang
ffmpeg -i eingabe.mp4 -c:v libx264 -crf 23 -movflags +faststart ausgabe.mp4

# Nur den Ton extrahieren
ffmpeg -i video.mp4 -vn -c:a copy ton.m4a

# Audio nach MP3
ffmpeg -i ton.wav -c:a libmp3lame -q:a 2 ton.mp3

Schneiden und Zusammenfügen

# Ohne Neukodierung (schnell, Schnitt an Keyframes)
ffmpeg -ss 00:01:30 -to 00:03:00 -i eingabe.mp4 -c copy clip.mp4

# Mit Neukodierung (genauer Schnitt)
ffmpeg -ss 00:01:30 -to 00:03:00 -i eingabe.mp4 -c:v libx264 -crf 23 clip.mp4

# Mehrere Clips verbinden (gleiche Codecs) über eine Liste
# datei.txt:  file 'a.mp4'\n file 'b.mp4'
ffmpeg -f concat -safe 0 -i datei.txt -c copy zusammen.mp4

# Dauer ohne Neukodierung kürzen: schnellste Variante
ffmpeg -i in.mp4 -t 30 -c copy kurz.mp4

Skalieren, Zuschneiden, Drehen

# Auf 1280 Breite skalieren, Höhe automatisch (gerade Zahl)
ffmpeg -i in.mp4 -vf scale=1280:-2 out.mp4

# Zuschneiden: Breite:Höhe:X:Y
ffmpeg -i in.mp4 -vf "crop=640:480:100:50" out.mp4

# Drehen um 90 Grad im Uhrzeigersinn
ffmpeg -i in.mp4 -vf transpose=1 out.mp4

# Zwei Videos nebeneinander
ffmpeg -i links.mp4 -i rechts.mp4 -filter_complex hstack out.mp4

# Bildrate ändern
ffmpeg -i in.mp4 -r 30 out.mp4

Bilder und Sequenzen

# Einzelbild zu einem Zeitpunkt
ffmpeg -ss 00:00:05 -i in.mp4 -frames:v 1 -q:v 2 bild.jpg

# Alle 10 Sekunden ein Bild
ffmpeg -i in.mp4 -vf fps=1/10 bild_%03d.jpg

# Aus Bildern ein Video
ffmpeg -framerate 25 -pattern_type glob -i 'bild_*.png' -c:v libx264 out.mp4

# Kontaktabzug (Kachelbild)
ffmpeg -i in.mp4 -vf "fps=1/30,scale=320:-1,tile=4x4" kontakt.jpg

Werkzeuge drumherum

# Tonspur ersetzen
ffmpeg -i video.mp4 -i ton.wav -c:v copy -map 0:v:0 -map 1:a:0 -shortest out.mp4

# Bereich prüfen, ob Datei beschädigt ist
ffmpeg -v error -i in.mp4 -f null -         # gibt nur Fehler aus

# Netzwerkstream aufnehmen
ffmpeg -i http://stream.example.org/live.m3u8 -c copy -t 60 aufnahme.ts

# Fortschritt maschinenlesbar
ffmpeg -i in.mp4 -progress - -nostats out.mp4 | grep out_time

Praxis-Tipps

  • Erst ffprobe, dann entscheiden: Welche Codecs, welche Auflösung, welche Bildrate? Eine Konvertierung ohne diese Information ist geraten.
  • -c copy ist wörtlich „nicht neu kodieren“: Schnell und verlustfrei – funktioniert aber nur, wenn Zielformat und Container die Quell-Codecs unterstützen.
  • CRF statt Bitrate: Für Dateien mit gleichbleibender Qualität ist ein CRF-Wert die bessere Wahl als eine feste Bitrate; diese bleibt für Streaming mit Bandbreitenvorgabe sinnvoll.
  • -movflags +faststart für Weboberflächen: Verschiebt die Metadaten an den Dateianfang, damit der Browser sofort abspielen kann.
  • -y überschreibt ohne Nachfrage: Bequem in Skripten, gefährlich von Hand.

Verwandte Grundlagen: bash-Befehle, Codec, Verlustbehaftete Kompression, ImageMagick-Befehle.

ImageMagick-Befehle: Bilder konvertieren und im Stapel bearbeiten

convert (in ImageMagick 7: magick) verändert Bilder von der Kommandozeile: skalieren, zuschneiden, drehen, konvertieren, mit Wasserzeichen versehen – einzeln oder im Stapel. Diese Referenz zeigt die häufigsten Aufgaben.

Grundbefehle

# Version prüfen – entscheidet über den Aufrufnamen
convert -version     # ImageMagick 6
magick -version      # ImageMagick 7

# Unter ImageMagick 7 heißen viele Befehle magick <unterbefehl>:
magick identify bild.jpg
magick bild.jpg -resize 800x vorschau.jpg

Informationen und Formate

identify bild.jpg                        # Maße, Format, Farbtiefe
identify -verbose bild.jpg | head -40    # alle Metadaten
identify *.jpg                           # Stapel: alle Bilder
convert -list format | grep -i webp      # unterstützte Formate
convert -list font | head -20            # verfügbare Schriften

Skalieren und Zuschneiden

# Auf feste Breite, Höhe proportional
convert in.jpg -resize 1200x out.jpg

# In ein Rechteck einpassen, ohne Verzerrung
convert in.jpg -resize 800x600 out.jpg

# Auf exakte Größe mit Beschnitt
convert in.jpg -resize 800x600^ -gravity center -extent 800x600 out.jpg

# Quadratischer Beschnitt aus der Mitte
convert in.jpg -resize 400x400^ -gravity center -extent 400x400 quadrat.jpg

# Zuschneiden: Breite x Höhe + X + Y
convert in.jpg -crop 500x400+100+50 +repage zugeschnitten.jpg

+repage ist wichtig: Ohne diese Option behält das Ergebnis die ursprüngliche Leinwandposition, was bei späterer Weiterverarbeitung zu unerwarteten Verschiebungen führt.

Drehen, Spiegeln, Ausrichten

convert in.jpg -rotate 90 out.jpg
convert in.jpg -flip out.jpg        # vertikal spiegeln
convert in.jpg -flop out.jpg        # horizontal spiegeln
convert in.jpg -auto-orient out.jpg # EXIF-Drehung anwenden
convert in.jpg -trim out.jpg        # Rand wegschneiden
convert in.jpg -deskew 40% out.jpg  # schiefe Scans begradigen

Farben und Effekte

convert in.jpg -colorspace Gray grau.jpg
convert in.jpg -modulate 100,0 s/w.jpg         # Sättigung 0
convert in.jpg -blur 0x2 weich.jpg
convert in.jpg -sharpen 0x1 scharf.jpg
convert in.jpg -level 5%,95% kontrast.jpg
convert in.jpg -quality 82 kleiner.jpg         # JPEG-Qualität
convert in.jpg -strip sauber.jpg               # Metadaten entfernen

Text und Wasserzeichen

# Text unten rechts
convert in.jpg -gravity southeast -pointsize 28 -fill white \
  -annotate +10+10 "© hanse-computing.de" out.jpg

# Logo halbtransparent in die Mitte
convert in.jpg \( logo.png -resize 200x -alpha set -channel A -evaluate multiply 0.4 \) \
  -gravity center -composite out.jpg

# Rahmen
convert in.jpg -bordercolor "#cccccc" -border 8 gerahmt.jpg

Stapelverarbeitung

# Mehrere Bilder in einem Aufruf
convert a.jpg b.jpg c.jpg -resize 1000x aus_%d.jpg

# Alle JPEGs im Verzeichnis verkleinern (Shell-Schleife)
for f in *.jpg; do
  magick "$f" -resize 1600x -strip -quality 82 "web/${f}"
done

# Parallel und schnell – besser als convert für Massenläufe
mogrify -path web/ -resize 1600x -strip -quality 82 *.jpg

PDF und Dokumente

# PDF-Seiten in Bilder umwandeln (benötigt Ghostscript)
convert -density 150 dokument.pdf -quality 90 seite_%03d.jpg

# Bilder zu einem PDF zusammenfassen
convert seite_*.jpg -quality 85 dokument.pdf

# PDF verkleinern über Auflösung
convert -density 100 in.pdf -quality 70 -compress JPEG out.pdf

Praxis-Tipps

  • Erst identify, dann verarbeiten: Ohne Maße und Format zu kennen, ist jede Skalierung geraten.
  • -strip bei Veröffentlichung: Entfernt EXIF-Daten inklusive GPS-Koordinaten und Kameradaten – aus Datenschutzgründen meist gewünscht.
  • ImageMagick 7 heißt magick: In Skripten prüfen, welche Version installiert ist; ältere Anleitungen nutzen durchgehend convert.
  • Speichergrenzen beachten: Bei sehr großen Bildern kann ImageMagick am Speicherlimit abbrechen; -limit memory und -limit map helfen, und ein reiner Resize über vips ist ressourcenschonender.

Verwandte Grundlagen: bash-Befehle, ffmpeg-Befehle, Verlustbehaftete Kompression, Verlustfreie Kompression.

pandoc-Befehle: Dokumente zwischen Formaten konvertieren

pandoc konvertiert zwischen Dokumentformaten: Markdown, HTML, LaTeX, DOCX, ODT, EPUB, PDF und vielen mehr. Es ist das Standardwerkzeug, um Text einmal zu schreiben und in mehreren Zielformaten auszugeben – etwa Dokumentation aus Markdown in PDF und HTML.

Grundschema

pandoc [Optionen] eingabe -o ausgabe

Das Ausgabeformat ergibt sich meist aus der Endung; mit --to lässt es sich überschreiben. Ohne -o schreibt Pandoc nach stdout.

# Unterstützte Formate ansehen
pandoc --list-input-formats
pandoc --list-output-formats

# Version und Optionen
pandoc --version
pandoc --help

Konvertieren zwischen Formaten

# Markdown nach HTML (eigenständige Datei mit CSS)
pandoc doku.md -s --css=stil.css -o doku.html

# Markdown nach DOCX
pandoc konzept.md -o konzept.docx

# Markdown nach PDF (benötigt eine LaTeX-Installation)
pandoc bericht.md -o bericht.pdf --pdf-engine=xelatex

# Microsoft Word nach Markdown
pandoc angebot.docx -t gfm -o angebot.md

# HTML nach Markdown
pandoc seite.html -t gfm -o seite.md

# Mehrere Dateien zusammenführen
pandoc kapitel1.md kapitel2.md kapitel3.md -o buch.docx

Steuerung des Ergebnisses

-s, --standalone        vollständiges Dokument mit Kopf und Fuß
-t, --to FORMAT         Zielformat explizit
-f, --from FORMAT       Quellformat explizit
--toc                   Inhaltsverzeichnis einfügen
--toc-depth=3           Tiefe des Inhaltsverzeichnisses
--number-sections       Abschnitte nummerieren
--highlight-style=tango Syntaxhervorhebung in Code-Blöcken
--metadata title="Titel" Metadaten setzen
-V geometry:margin=2.5cm Variablen für LaTeX-Vorlagen
--reference-doc=ref.docx eigene Vorlage für DOCX
--template=eigene.html   eigene Vorlage für HTML
--lua-filter=f.lua       eigene Transformation

Typische Aufrufe

# Technisches Dokument mit Inhaltsverzeichnis und Nummerierung
pandoc handbuch.md -o handbuch.pdf --pdf-engine=xelatex \
  --toc --number-sections -V geometry:margin=2.5cm \
  -V mainfont="DejaVu Serif" -V lang=de

# Webseite mit eingebettetem CSS
pandoc readme.md -s --embed-resources --standalone \
  --metadata title="Readme" --css=stil.css -o readme.html

# EPUB bauen
pandoc buch/*.md -o buch.epub --toc --metadata title="Handbuch" \
  --metadata author="Hanse Computing"

# DOCX mit betrieblicher Formatvorlage
pandoc entwurf.md --reference-doc=vorlage.docx -o entwurf.docx

# Aus Standardeingang (z. B. in einer Pipe)
cat bericht.md | pandoc -f gfm -t html -s -o bericht.html

Vorlagen und Variablen

# Vorlage im aktuellen Stand ausgeben und anpassen
pandoc -D html > eigene.html
pandoc -D latex > eigene.tex

# Eigene Variablen übergeben
pandoc in.md -s --template=eigene.html \
  -V firma="Hanse Computing" -V jahr=2026 -o out.html

Praxis-Tipps

  • PDF braucht eine Engine: Pandoc erzeugt PDFs nicht selbst, sondern über LaTeX (xelatex, lualatex) oder einen HTML-Weg (wkhtmltopdf, weasyprint). Fehlt die Engine, bricht die Konvertierung mit einer klaren Meldung ab. Für Umlaute und fremde Schriften ist xelatex die zuverlässigere Variante.
  • YAML-Kopf nutzen: Titel, Autor und Datum lassen sich direkt am Anfang der Markdown-Datei setzen; das hält Aufrufe kurz und die Datei selbst beschreibend.
  • --standalone nicht vergessen: Ohne diese Option entsteht nur ein Fragment ohne <head> – der häufigste Grund für unbrauchbare HTML-Ausgaben.
  • --embed-resources: Bilder und CSS werden in die HTML-Datei eingebettet, sodass sie sich als einzelne Datei weitergeben lässt.
  • Rückkonvertierung ist verlustbehaftet: Von DOCX nach Markdown gehen Formatierungen verloren. Für einen Austausch ist es brauchbar, für ein Layout nicht.

Verwandte Grundlagen: Markdown-Referenz, bash-Befehle, Markdown-Referenz, LaTeX-Befehle.

pytest-Befehle: Python-Tests ausführen und filtern

pytest ist das verbreitetste Testframework für Python. Es findet Tests automatisch, braucht kaum Boilerplate und liefert bei Fehlern verständliche Ausgaben. Diese Referenz zeigt Aufrufe, Selektoren, Fixtures und Ausgabeoptionen.

Aufruf und Sammlung

pytest                          # alles ab dem aktuellen Verzeichnis
pytest tests/                   # nur ein Verzeichnis
pytest tests/test_api.py        # einzelne Datei
pytest tests/test_api.py::test_login            # einzelne Funktion
pytest tests/test_api.py::TestKunde::test_neu   # einzelne Methode

# Nur sammeln, nicht ausführen
pytest --collect-only
pytest --co -q

Standardmäßig sammelt pytest Dateien, die test_*.py oder *_test.py heißen, sowie Funktionen und Klassen mit dem Präfix test.

Auswahl von Tests

# Nach Namen filtern (Teilstring-Abgleich)
pytest -k "login and not slow"
pytest -k "api or web"

# Nach Markern
pytest -m slow
pytest -m "integration and not flaky"
pytest --markers                      # vorhandene Marker anzeigen

# Fehlgeschlagenen Test wiederholen
pytest --last-failed              # nur die zuletzt fehlgeschlagenen
pytest --failed-first             # zuerst fehlgeschlagene

Ausgabe steuern

-v, --verbose        jeder Test einzeln
-q, --quiet          knappe Ausgabe
-s                   Ausgaben (print) nicht abfangen
-x                   beim ersten Fehler abbrechen
--maxfail=3          nach drei Fehlern abbrechen
--tb=short|long|line|no  Fehlerdarstellung
-rA                  Zusammenfassung aller Ergebnisse
--durations=10       die zehn langsamsten Tests
--color=yes          farbige Ausgabe erzwingen

Tests schreiben

import pytest

def test_addition():
    assert 1 + 1 == 2

def test_ausnahme():
    with pytest.raises(ValueError, match="ungültig"):
        int("keine zahl")

@pytest.mark.parametrize("eingabe,erwartet", [
    ("1", 1),
    ("-2", -2),
    ("007", 7),
])
def test_konvertierung(eingabe, erwartet):
    assert int(eingabe) == erwartet

@pytest.mark.slow
def test_lange_operation():
    assert langsame_funktion() is True

Fixtures

@pytest.fixture
def db():
    verbindung = verbinde()
    yield verbindung          # alles vor yield ist Aufbau, danach Abbau
    verbindung.close()

@pytest.fixture(scope="session")
def client():
    return starte_testclient()

def test_abfrage(db):
    assert db.query("SELECT 1") == 1

def test_mit_client(client):
    assert client.get("/health").status_code == 200

Die Scopes steuern die Lebensdauer: function (Standard) für jeden Test neu, class, module, package und session für längere Laufzeiten. Ein Session-Fixture ist besonders nützlich für teure Aufbauten wie Datenbank oder Testserver.

Konfiguration

# pyproject.toml
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-ra --strict-markers --cov=app"
markers = [
  "slow: langlaufende Tests",
  "integration: braucht echte Dienste",
]

# Alternativ pytest.ini
[pytest]
minversion = 8.0
testpaths = tests
filterwarnings = error

--strict-markers ist eine sehr sinnvolle Einstellung: Ein Tippfehler in einem Marker wird dann zum Fehler statt still ignoriert – sonst wundert man sich, warum -m integration nichts auswählt.

Berichte und Abdeckung

pytest --junitxml=bericht.xml          # für CI-Systeme
pytest --cov=app --cov-report=term-missing
pytest --cov=app --cov-report=html:abdeckung/
pytest -n auto                          # parallel (pytest-xdist)
pytest --random-order                   # Reihenfolge variieren (Plugin)

-n auto verteilt Tests auf mehrere Prozesse und verkürzt lange Läufe erheblich. Voraussetzung ist, dass Tests voneinander unabhängig sind – und genau das deckt der parallele Lauf gnadenlos auf, wenn sie es nicht sind.

Praxis-Tipps

  • Ein Test, ein Grund: Ein Test, der fünf Dinge prüft, ist bei einem Fehler schwer zu deuten.
  • --strict-markers und filterwarnings = error: Beide Einstellungen verwandeln Nachlässigkeit in sichtbare Fehler.
  • Fixtures statt Wiederholung: Aufbau und Abbau gehören in Fixtures, nicht in jede Testfunktion.
  • Testdauer im Blick behalten: --durations=10 deckt regelmäßig unerwartet langsame Tests auf – meist fehlt ein Loop, ein Timeout oder eine echte Abhängigkeit.

Verwandte Grundlagen: Python-Befehle, Unit-Test, Testdaten, CI/CD.

promtool-Befehle: Prometheus-Regeln prüfen und testen

promtool ist das offizielle Werkzeug zur Arbeit mit Prometheus-Konfiguration und Abfragen. Es prüft Regeldateien vor dem Ausrollen, führt Abfragen gegen einen laufenden Server aus und testet Regeln mit festen Eingabedaten. Diese Referenz zeigt die wichtigsten Aufrufe.

Konfiguration prüfen

# Prometheus-Gesamtkonfiguration validieren
promtool check config /etc/prometheus/prometheus.yml

# Nur Regeldateien prüfen (Syntax und Ausdrücke)
promtool check rules /etc/prometheus/rules/*.yml

# Dienstdefinitionen für Service Discovery prüfen
promtool check service-discovery --config.file=/etc/prometheus/prometheus.yml

Immer vor dem Neustart prüfen. Ein Syntaxfehler in einer Regeldatei führt dazu, dass Prometheus die gesamte Konfiguration nicht lädt – die Überwachung steht dann, während man den Fehler sucht. Der Aufruf gehört deshalb in die Pipeline, nicht erst ins Deployment.

Abfragen ausführen

# Momentane Abfrage gegen einen laufenden Prometheus
promtool query instant http://localhost:9090 'up == 0'

# Bereichsabfrage (Start, Ende, Schrittweite)
promtool query range --start=2026-09-26T08:00:00Z --end=2026-09-26T09:00:00Z \
  --step=1m http://localhost:9090 'rate(http_requests_total[5m])'

# Abfragen aus einer Datei (eine pro Zeile)
promtool query instant http://localhost:9090 -f abfragen.txt

Regeln testen

Das ist die stärkste Funktion: Regeln lassen sich mit vorgegebenen Zeitreihen prüfen, ohne einen Server zu betreiben.

# regeln.yml
groups:
  - name: beispiel
    rules:
      - alert: InstanzNichtErreichbar
        expr: up == 0
        for: 5m
        labels:
          severity: critical

# regeln_test.yml
rule_files:
  - regeln.yml
evaluation_interval: 1m
tests:
  - interval: 1m
    input_series:
      - series: 'up{job="node",instance="web01:9100"}'
        values: '1 1 0 0 0 0 0 0'
    alert_rule_test:
      - eval_time: 7m
        alertname: InstanzNichtErreichbar
        exp_alerts:
          - exp_labels:
              severity: critical
              job: node
              instance: web01:9100
            exp_annotations: {}

promtool test rules regeln_test.yml

Mit values: '1 1 0 0 0 ...' werden Verläufe als Aneinanderreihung von Werten beschrieben; Wiederholungen lassen sich abkürzen (1x3 für dreimal die 1). Der Test prüft, ob der Alarm zum erwarteten Zeitpunkt mit den erwarteten Labels auslöst – genau das, was bei for:-Verzögerungen sonst nur im Betrieb auffällt.

Zeitreihen und Metriken erkunden

# Alle Metriknamen auflisten
promtool query instant http://localhost:9090 '{__name__=~".+"}' | head

# Label-Werte
promtool query instant http://localhost:9090 'count by (job) (up)'

# Daten in ein OpenMetrics-Format wandeln
promtool tsdb create-blocks-from openmetrics eingabe.txt /var/lib/prometheus/data/

TSDB-Werkzeuge

# Zustand der lokalen Zeitreihendatenbank
promtool tsdb analyze /var/lib/prometheus/data
promtool tsdb list /var/lib/prometheus/data

# Statistik zu Kardinalität pro Metrik
promtool tsdb analyze /var/lib/prometheus/data --limit=20

# Blöcke verdichten und aufräumen
promtool tsdb create-blocks-from ...     # Import
# Für die Rechtevergabe:
promtool tsdb dump /var/lib/prometheus/data | head

tsdb analyze ist das Werkzeug der Wahl bei Speicherproblemen: Es zeigt, welche Metriken und Labels die meisten Zeitreihen erzeugen. Meist sind es wenige Label-Kombinationen mit hoher Kardinalität – etwa Benutzer-IDs oder Anfrage-IDs in Labels, die dort nichts zu suchen haben.

Checks für die CI

# In einer Pipeline
promtool check rules rules/*.yml || exit 1
promtool test rules tests/*_test.yml || exit 1

Praxis-Tipps

  • Regeln immer testen: Ein Alarm, der nie auslöst, weil der Ausdruck falsch ist, ist gefährlicher als kein Alarm – er erzeugt falsche Sicherheit.
  • for: erfordert Zeit im Test: Ohne mehrere Evaluierungsintervalle im Eingabeverlauf kann ein Alarm mit Verzögerung nicht auslösen. Der Test braucht also mehr Werte als die Wartezeit in Minuten.
  • Kardinalität im Blick behalten: tsdb analyze regelmäßig laufen lassen, bevor der Speicher voll ist.
  • Nicht gegen Produktion testen: promtool test rules läuft lokal mit Eingabedaten – das ist schneller, reproduzierbar und ohne Risiko.

Verwandte Grundlagen: Prometheus, Alertmanager, Node Exporter, Monitoring mit Prometheus und Grafana.

  1. OpenVPN-Befehle: Schnellreferenz für Server, Client und Statusabfragen
  2. IPsec-Befehle: Schnellreferenz für strongSwan und ip xfrm
  3. WireGuard-Befehle: Schnellreferenz für wg und wg-quick
  4. rsync-Befehle: Daten effizient synchronisieren

Seite 2 von 46

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz