1.Eine Datei hochladen
Die Felder kommen aus dem Query-String: Jeder Parameter ohne führenden Unterstrich wird zu einem Feld an jedem Eintrag.
shell
curl -sS -X POST "https://logs.uptimeeye.com/v1/ingest/text?service=orders&env=prod&_stream_fields=service,env" \
-H "Authorization: Bearer ue_ingest_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: text/plain" \
--data-binary @/var/log/orders/application.log
# → {"entries": 1834}2.Was aus einer Spring-Boot-Datei wird
application.log
2026-09-04 11:55:01,123 ERROR 1 --- [nio-8080-exec-3] c.e.orders.OrderController : Order 4711 failed
java.lang.IllegalStateException: payment declined
at com.example.orders.OrderService.place(OrderService.java:88)
Caused by: com.example.PaymentException: card_declined
2026-09-04 11:55:02,000 INFO 1 --- [nio-8080-exec-3] c.e.orders.OrderController : retry scheduledNote: Zwei Einträge: Der erste hat
level=error, _time=2026-09-04T11:55:01.123Z und eine vierzeilige Nachricht samt Stacktrace; der zweite ist die INFO-Zeile.3.Einen Prozess oder ein Journal per Pipe senden
shell
# stdout of a process, one request per 5-second batch
java -jar orders.jar 2>&1 | while chunk=$(timeout 5 cat) || [ -n "$chunk" ]; do
printf '%s\n' "$chunk" | curl -sS -X POST "https://logs.uptimeeye.com/v1/ingest/text?service=orders&env=prod" \
-H "Authorization: Bearer ue_ingest_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: text/plain" --data-binary @-
done
# the last hour of a systemd unit
journalctl -u nginx --since -1h -o short-iso --no-pager | curl -sS -X POST \
"https://logs.uptimeeye.com/v1/ingest/text?service=nginx&host=$(hostname)" \
-H "Authorization: Bearer ue_ingest_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -H "Content-Type: text/plain" --data-binary @-4.Optionen
_time_source=ingest– Zeitstempel in den Zeilen ignorieren und die Ankunftszeit nehmen._multiline=off– nie Zeilen zusammenfassen; jede Zeile ist ein eigener Eintrag._stream_fields=service,env– welche deiner Query-Felder zu Stream-Feldern werden (schnelle Filter).
Felder, die du bekommst
Diese Felder erscheinen im Panel „Felder“ und funktionieren in jedem Filter:
level, wenn ein Level-Wort gefunden wird- die Felder aus deinem Query-String
_timeaus der Zeile, sonst die Ankunftszeit
Tipps
- Erkannte Zeitstempel:
2026-09-04T11:42:08.877Z,2026-09-04 11:42:08,877,2026-09-04T11:42:08+02:00,[2026-09-04 11:42:08]. Ohne Zone wird die Zeit als UTC gelesen – lass deine JVM oder deinen Logger in UTC loggen oder nimm den Offset ins Pattern auf (%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}). - Zeilen wie die von nginx,
10.0.0.1 - - [04/Sep/2026:11:42:08 +0000] "GET /" 200, haben keinen ISO-Zeitstempel am Anfang und bekommen deshalb die Ankunftszeit. Für Uploads von Live-Ausgaben ist das in Ordnung; für ältere Logs nimm lieber einen Agent mit Parser. - Für alles, was dauerhaft läuft, nimm einen Agent (Vector, Fluent Bit, Alloy): Er liest mit, bündelt, versucht es bei Fehlern erneut und merkt sich, wo er aufgehört hat.
FAQ
Ist die Größe pro Anfrage begrenzt?
16 MiB pro Anfrage, unkomprimiert. Teil größere Dateien mit
split -l 20000 oder komprimier sie mit gzip und sende Content-Encoding: gzip.Werden meine Logs als Text oder als umgewandeltes JSON abgerechnet?
So, wie sie ankommen – die Bytes des Texts, den du sendest.
Wo bekomme ich den Ingest-Key?
In der App unter API-Keys → Neuer API-Key → Typ „Log-Ingest“. Der Key beginnt mit
ue_ingest_ und wird nur einmal angezeigt. Management-Keys (ue_live_) lehnt der Ingest-Endpoint ab.Wie sehe ich, ob Logs ankommen?
Öffne Logs in der App, wähl den Zeitraum „15 Min.“ und such nach
service:=<your service>. Neue Zeilen sind nach etwa einer Sekunde durchsuchbar; Live-Tail zeigt sie mit etwa 6 s Verzögerung.Verwandte Seiten
Spring Boot / JavaVier Wege für Spring-Boot- und Logback-Logs zu UptimeEye Logs: OpenTelemetry Java Agent, Structured Logging, Logback-JSON mit Agent oder Klartext-Upload..HTTP API / curlDie Ingest-API von UptimeEye Logs: JSON-Lines per curl oder eigenem Code senden, Stream-Felder wählen, mit gzip komprimieren und Antwortcodes verstehen..Fluent BitLass Fluent Bit Logdateien oder Container-Ausgaben mitlesen und als JSON-Lines über den http-Output an UptimeEye Logs senden – auf Hosts, VMs und Kubernetes..Logs durchsuchenJetzt, wo Zeilen ankommen: Filter, Felder, Zeiträume und Live-Tail.