Commit Graph

1260 Commits (c378a1e4ab4dea7b46a3dc792d6b41e6cd011b4d)
 

Author SHA1 Message Date
Mike Lang d2d457a45f Add k8s option to README 4 years ago
Mike Lang b248408842 Update clock.html for 2020 and display negative time properly 4 years ago
Mike Lang d6dbf5512d
Merge pull request #175 from ekimekim/sheet-updates
sheetsync: Move column indexes to match updated sheet
4 years ago
Mike Lang 7600ce67a9
Merge pull request #174 from ekimekim/mike/generate-videos
Add restreamer call to generate full concat'd videos
4 years ago
Mike Lang b85296a81e sheetsync: Move column indexes to match updated sheet
New tags column shunts all columns after it right by 1.
We will later want to parse that, but for now we ignore it.
4 years ago
Mike Lang 61d934f333 docker-compose.jsonnet: Use seperate tag for database
The database changes rarely, and is disruptive to re-deploy,
so we track its image version seperately so it only needs to be upgraded
when there's actually a change.
4 years ago
Mike Lang 1b12c05e0e make smart cut work, only to discover it doesn't actually have any advantage over fast 4 years ago
Mike Lang b47eb3865f Fix segment_coverage -> segment-coverage
because _ is illegal in k8s names.

However the image name does contain a _ so we replace - with _ when constructing the image name.
4 years ago
HubbeKing 9a95dc44eb Fix k8s.jsonnet to compile to something kubernetes accepts
Add Service definitions to output
Correct apiVersion for Ingress definition
Output a v1 List, as kubectl doesn't parse JSON arrays
4 years ago
Mike Lang 28faff5c58 Add a k8s version of the docker-compose file
Note this version is very simplified compared to the docker-compose
and has some major limitations:
* It relies on hostPath and a nodeSelector to put all the components on a shared storage node
* It only supports use as a replication node (downloader, restreamer, backfiller, segment_coverage)
* It uses the k8s Ingress instead of the built-in nginx for http routing.
4 years ago
Mike Lang 4d21f447ad Add restreamer call to generate full concat'd videos
This makes the timelapse easier.
5 years ago
Mike Lang dea143cc0a
Merge pull request #163 from ekimekim/mike/api-ping
api_ping: A simple util for hitting google apis to prevent inactivity
5 years ago
Mike Lang 3489b0abaf api_ping: A simple util for hitting google apis to prevent inactivity 5 years ago
Mike Lang 2dbd1132fe common.googleapis: Fix a bug in retrying failed access token get
Seems that this was never fixed when the code was moved.
5 years ago
Mike Lang 47584821f9 thrimbletrimmer: Handle null trim in submit
mainly for save draft
5 years ago
Mike Lang 3086ab73f6 Add thrimbletrimmer clock
To provide a true bustime even when they're bussing with the overlay
5 years ago
Mike Lang 7dcd844e16 add logging to help debug smart cut 5 years ago
Mike Lang c294fa82b8 smart cut: Fix output format 5 years ago
Mike Lang c6172ce37f smart cut: More typos 5 years ago
Mike Lang 82346a55ca smart cut: Fix int in ffmpeg args 5 years ago
Mike Lang b39e844c1e restreamer: Fix missing import of smart cut 5 years ago
Mike Lang 58ff90cefe Further fix for when getRealTimeForPlayerTime is null 5 years ago
Mike Lang 58a2a0402d thrimbletrimmer: Handle getting trim time when no valid trim time is set
Just return null instead
5 years ago
Christopher Usher dbad2b4082 fixed download link for stream page 5 years ago
Christopher Usher d56801014b added support for suspect segments to segment_coverage 5 years ago
Mike Lang 21d5548980 Add new segment type "suspect"
We've noticed that when nodes have connection problems, they get full segments
with different hashes. Inspection of these segments shows that
they all have identical data up to a point.

Segments that fetched normally will then have the remainder of the data.
Segments that had issues will have a slightly corrupted end.
The data is still valid, and no errors are raised. It just doesn't have all the data.

We noticed that these corrupted segments all were cut off exactly 60sec after their requests
began. We believe this is a server-side timeout on the request that returns whatever data
it has, then closes the container file cleanly before returning successfully.

We detect segments that take > 59 seconds to recieve, and label them as "suspect".

Suspect segments are treated identically to partial segments, except they are always preferred
over partials.
5 years ago
Mike Lang bb05e37ae4 segments: Use longest segment in bytes if duration is the same
We occasionally see corrupted segments that are slightly shorter in size
but report the same metadata as the full segments. Prefer the largest version
as it's likely the least corrupt.
5 years ago
Mike Lang b516917e62 Add new "smart" cut technique 5 years ago
Mike Lang bb3814f9f7 overview.jsonnet: Use a template variable to allow restricting to certain nodes 5 years ago
Mike Lang 4a2fe7a6ed cutter: Explicitly set mime type of uploads correctly 5 years ago
Mike Lang e2f4162ac7 thrimbletrimmer: Fix a bug when trimming controls aren't enabled 5 years ago
Mike Lang fde2758275 cutter: Fix bug where uploader was cleared on non-retryable error
Instead of on retryable error
5 years ago
Christopher Usher 986c9a3413 removed redundant option 5 years ago
Christopher Usher 9c77dd1f40 added the ability to generate a webpage with all coverage maps 5 years ago
Mike Lang 8086c917fe Force correct postgres version 5 years ago
Mike Lang e23387b231 thrimbletrimmer: Document new shortcuts 5 years ago
Mike Lang 40f6a72ad7 thrimbletrimmer: Add keyboard shortcuts -/= to adjust playback speed 5 years ago
Mike Lang 0a379faf5a thrimbletrimmer: Relabel download button to make more sense 5 years ago
Mike Lang fd35c0dc20 thrimbletrimmer: Have a download link instead of a iframe
The iframe doesn't always work, this is more reliable.
5 years ago
Mike Lang c9f2e8e0a5 thrimbletrimmer: Preserve trim timings when re-loading playlist
Useful if you've already cut the start
but want to extend the range of times before cutting the end.
5 years ago
Mike Lang a002619c4c youtube upload: Explicitly set mime type 5 years ago
Mike Lang a438d86f80 cutter: Fix multiple problems with logging errors 5 years ago
Mike Lang 72003f28d0 downloader: Don't check the age of a worker we just spawned
Not only is this redundant, but it creates a race condition where
the worker fails before the latest_worker = workers[-1] check,
and we get an IndexError.
5 years ago
Mike Lang 3fabb2944f prometheus: Add scheme to url 5 years ago
Mike Lang 6e067fab83 prometheus: fix mistake 5 years ago
Mike Lang d76f38bf20 prometheus: include url as a label
for coverage maps
5 years ago
Mike Lang 9a1369cf98 overview: Fix job -> service 5 years ago
Mike Lang e1993c6a79 overview dashboard: Look up services by 'service' label, not job
Job can't be repeated across scrape jobs, service can
5 years ago
Mike Lang ac98d67853 overview dashboard: Hide UNEDITED and DONE states so the others are visible 5 years ago
Mike Lang 8a65d18f74 prometheus config: Support mixed http and https scraping 5 years ago