Commit Graph

34 Commits

Author SHA1 Message Date
Ingo Oppermann
92decc7111 Use global buffer pool where feasible 2024-10-14 10:51:35 +02:00
Ingo Oppermann
879819f10f Retrieve current process from leader, clone metadata, introduce new state 'deploying' 2024-07-22 16:58:57 +02:00
Ingo Oppermann
72883d18d4 Remove bottlenecks in process handling, still some rough edges 2024-07-18 17:16:49 +02:00
Ingo Oppermann
7e90bb87ce Allow to import report history for a process 2024-07-10 16:46:49 +02:00
Ingo Oppermann
480dbb7f53 Refactor cluster node code 2024-07-09 12:26:02 +02:00
Ingo Oppermann
a9d6b1ec49 Add API endpoints for relocating processes 2024-06-19 15:28:30 +02:00
Ingo Oppermann
8a8ff6d4f4 Add LimitMode and Resources.CPU.IsThrottling to process state 2023-07-17 21:45:19 +02:00
Ingo Oppermann
2b58c11bb1 Fix cluster process update on metadata change 2023-06-28 16:26:36 +02:00
Ingo Oppermann
b35ac9ccc3 Allow proxied range requests, /cluster/process mimic /process 2023-06-21 13:14:27 +02:00
Ingo Oppermann
7e7d1caca7 Add EmergencyLeaderTimeout parameter, ignore throttling nodes, implement NodeRecoverTimeout, introduce processNodeMap in cluster DB 2023-06-07 22:08:07 +02:00
Ingo Oppermann
8829b8fff0 Respect domain in cluster DB, allow metadata in process config for cluster 2023-06-05 21:19:11 +02:00
Ingo Oppermann
d652fd213b Check for identical configs on process update 2023-06-01 16:43:17 +02:00
Ingo Oppermann
a79cfa0c77 Merge branch 'clusteriam' into vod 2023-06-01 15:16:54 +02:00
Ingo Oppermann
ccac2ffd5d Various updates
- rebrand group to domain
- move IAM to the API (rest and graph) for enforcing "process:" rules
- add abstraction layer for restream store in order to decouple internal format from format on disk
- move playout handler into restreamHandler
- remove user from restream interface
- add TaskID type that includes the process id and its domain
2023-05-23 15:47:06 +02:00
Ingo Oppermann
ead6e64442 Merge branch 'dev' into iam 2023-05-15 21:17:23 +02:00
Ingo Oppermann
b723f4e5fd Propagate number of logical CPUs in resource usage 2023-04-27 10:58:41 +02:00
Ingo Oppermann
b70382c40b Expose resource usage in process state 2023-04-25 16:20:59 +02:00
Ingo Oppermann
3a1825cf61 Expose resource usage in report history 2023-04-25 15:55:32 +02:00
Ingo Oppermann
c1bbb4065c Merge branch 'dev' into vod 2023-04-24 12:16:52 +02:00
Ingo Oppermann
317d6eb4d9 Add updated_at field in process infos 2023-04-24 12:05:01 +02:00
Ingo Oppermann
0a3117bbd0 Add log_patterns to process config
log_patterns allow to filter the FFmpeg log messages based on regular
expressions. Each entry of log_patterns is interpreted as regular
expression and matched against every non-progress log line emitted from
FFmpeg. All matching lines are returned in the matches array of the
report.
2023-03-27 15:50:25 +02:00
Ingo Oppermann
d950c45eb0 Add comment 2023-03-21 18:41:07 +01:00
Ingo Oppermann
b63b23527b Add scheduler and timeout to processes
The scheduler allows to define when a process should run. It can be either
a timestamp in RFC3339 format or a crontab expression. If a scheduler is
given, reconnect and the reconnect delay will only apply to processes that
exited as failed.

The timeout allows to define when a process should be gracefully stopped.
It is measured from the actual start of that process including all reconnects
due to failures. If the process finished regularly, the timeout will be
reset.
2023-03-21 14:51:43 +01:00
Ingo Oppermann
a9459bda7c WIP enforcing policies on process level 2023-02-14 15:23:50 +01:00
Ingo Oppermann
0147651de6 Extend placeholders
1. Allow variables in placeholders for parameter values, e.g.
   {rtmp,name=$processid}. The variable starts with a $ letter.
   The recognized variables are provided with the Replace func.

2. The template func recieves the process config and the name of
   the section where this placeholder is located, i.e. "global",
   "input", or "output".
2023-01-20 13:38:33 +01:00
Ingo Oppermann
dfc81ac38f Add ffmpeg migration tool, annotate process config with ffmpeg version constraint 2022-11-02 22:02:39 +01:00
Ingo Oppermann
971b8337fe Add new placeholders and parameters for placeholder 2022-07-06 19:51:47 +02:00
Jan Stabenow
5bed312e0b Fix tee_muxer input 2022-07-06 10:18:09 +02:00
Ingo Oppermann
ae8f5f00a6 Fix backslash escaping in placeholder value escaping 2022-07-05 10:45:57 +02:00
Ingo Oppermann
5900b725e6 Fix linter warning 2022-07-04 20:23:36 +02:00
Ingo Oppermann
a2898061b0 Add optional escape character to process placeholder
If a value for a placeholder needs escaping, add the character to
escape with an "^" to the name of the placeholder, e.g. {memfs^:}.
This will escape all occurences of ":" in the value for {memfs}
with a "\".
2022-07-04 20:20:15 +02:00
Jan Stabenow
eb1cc37456 Add GoSRT & improvements (repo-merge)
Commits (Ingo Oppermann):
- Add experimental SRT connection stats and logs
- Hide /config/reload endpoint in reade-only mode
- Add SRT server
- Create v16 in go.mod
- Fix data races, tests, lint, and update dependencies
- Add trailing slash for routed directories (datarhei/restreamer#340)
- Allow relative URLs in content in static routes

Co-Authored-By: Ingo Oppermann <57445+ioppermann@users.noreply.github.com>
2022-06-23 22:13:58 +02:00
Jan Stabenow
9746248c10 Add v16.8.0 2022-06-03 17:21:52 +02:00
Jan Stabenow
9c0b535199 Add v16.7.2 2022-05-13 19:26:45 +02:00