Граф коммитов

128 Коммитов

Автор SHA1 Сообщение Дата
dependabot[bot] fd6e467b28
Bump smallvec from 1.4.0 to 1.8.0
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.4.0 to 1.8.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.4.0...v1.8.0)

---
updated-dependencies:
- dependency-name: smallvec
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-17 09:22:31 -04:00
dependabot[bot] 13115df67c
Bump futures-util from 0.3.5 to 0.3.21
Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.5 to 0.3.21.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.5...0.3.21)

---
updated-dependencies:
- dependency-name: futures-util
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-17 09:21:13 -04:00
dependabot[bot] 1777ad0543
Bump arc-swap from 0.4.7 to 0.4.8
Bumps [arc-swap](https://github.com/vorner/arc-swap) from 0.4.7 to 0.4.8.
- [Release notes](https://github.com/vorner/arc-swap/releases)
- [Changelog](https://github.com/vorner/arc-swap/blob/v0.4.8/CHANGELOG.md)
- [Commits](https://github.com/vorner/arc-swap/compare/v0.4.7...v0.4.8)

---
updated-dependencies:
- dependency-name: arc-swap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-17 09:20:33 -04:00
dependabot[bot] e7f1ed307a
Bump miow from 0.2.1 to 0.2.2
Bumps [miow](https://github.com/yoshuawuyts/miow) from 0.2.1 to 0.2.2.
- [Release notes](https://github.com/yoshuawuyts/miow/releases)
- [Changelog](https://github.com/yoshuawuyts/miow/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yoshuawuyts/miow/compare/0.2.1...0.2.2)

---
updated-dependencies:
- dependency-name: miow
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-17 09:16:59 -04:00
dependabot[bot] 4db2af37d6
Bump image from 0.23.10 to 0.23.12
Bumps [image](https://github.com/image-rs/image) from 0.23.10 to 0.23.12.
- [Release notes](https://github.com/image-rs/image/releases)
- [Changelog](https://github.com/image-rs/image/blob/master/CHANGES.md)
- [Commits](https://github.com/image-rs/image/compare/v0.23.10...v0.23.12)

---
updated-dependencies:
- dependency-name: image
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-17 09:13:55 -04:00
dependabot[bot] f83224d306
Bump hyper from 0.13.6 to 0.13.10
Bumps [hyper](https://github.com/hyperium/hyper) from 0.13.6 to 0.13.10.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/v0.13.10/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v0.13.6...v0.13.10)

---
updated-dependencies:
- dependency-name: hyper
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-17 13:03:13 +00:00
dependabot[bot] b4113314ee
Bump socket2 from 0.3.12 to 0.3.19
Bumps [socket2](https://github.com/rust-lang/socket2) from 0.3.12 to 0.3.19.
- [Release notes](https://github.com/rust-lang/socket2/releases)
- [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/socket2/compare/0.3.12...v0.3.19)

---
updated-dependencies:
- dependency-name: socket2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 19:59:21 +00:00
dependabot[bot] 43545dd5cb
Bump crossbeam-channel from 0.4.2 to 0.4.4
Bumps [crossbeam-channel](https://github.com/crossbeam-rs/crossbeam) from 0.4.2 to 0.4.4.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases)
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/v0.4.2...crossbeam-channel-0.4.4)

---
updated-dependencies:
- dependency-name: crossbeam-channel
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 19:14:53 +00:00
Barret Rennie b095ad5193
Copy configuration from correct directory in deployment 2022-03-28 19:42:48 -04:00
Barret Rennie 4a30ec89b8
Fix fxrecorder.visual_metrics_path in deployment config 2022-03-28 19:34:30 -04:00
Barret Rennie eabfe321b6
Remove fxrunner section from requirements 2022-03-28 19:29:04 -04:00
Barret Rennie d9f17f9f93
Fix deploy script 2022-03-25 14:14:36 -04:00
Barret Rennie 90e1fcc3c3
Add perfherder output 2022-03-24 13:14:54 -04:00
Barret Rennie 8dff1227e0
Add missing LICENSE 2022-03-14 14:01:36 -04:00
dependabot[bot] c3ebca8a76
Bump pillow from 9.0.0 to 9.0.1
Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.0.0...9.0.1)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-12 01:04:01 +00:00
dependabot[bot] 65085f830d
Bump pillow from 8.4.0 to 9.0.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.4.0 to 9.0.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/8.4.0...9.0.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-13 04:22:31 +00:00
Barret Rennie 9de120ba2e
Add a documentation deployment script
This script was used to build and deploy the docs at
https://mozilla.github.io/fxrecord.
2021-11-24 15:19:11 -05:00
Barret Rennie f8a9b0e6c3
Bump Python version to 3.9.9
The requirements.txt file is now generated via pip-compile.
2021-11-24 14:06:28 -05:00
dependabot[bot] 67ab90df21
Bump pillow from 8.2.0 to 8.3.2
Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.2.0 to 8.3.2.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/8.2.0...8.3.2)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-24 17:00:15 +00:00
Barret Rennie 2b6bfb0cc1
Add docs for fxrecord
This moves the majority of documentation from `README.md` into a set of
documentation built with Sphinx.
2021-07-15 17:26:21 -06:00
Barret Rennie 3d87e0d250
Add management scripts 2021-07-15 14:58:33 -06:00
Barret Rennie b60522cf15
Add configurations for fxrecord deployments
The configurations included are for the first fxrecord deployment in the
Toronto office.
2021-06-24 18:50:02 -04:00
Barret Rennie 61b6fc79d5
Fix Display impl for ConfigError
The Display impl for ConfigError was showing "path.display()" instead of
the result of `self.path.display()`.
2021-06-24 14:00:49 -04:00
Barret Rennie 2f9b423c9f
Write visual metrics to a file
fxrecorder now has an option to write to a file instead of just to
stdout. This will allow us to upload the visual metrics JSON as a
Taskcluster artifact.
2021-06-22 00:36:45 -04:00
Barret Rennie 1aee47ca69
Log to a file in fxrunner 2021-06-21 23:49:41 -04:00
Barret Rennie 1d346e50e7
Fix TestPerfProvider to return increasing cpu times
When `cpu_and_disk_idle()` was updated to compute the cpu idle time over
an interval, the tests were never updated to match. This fixes those
tests.
2021-06-21 21:57:18 -04:00
Barret Rennie 7d334fee85
Provide fxrunner host as a string
This allows us to specify a hostname instead of just an IP address.
2021-06-14 23:45:23 -04:00
Barret Rennie 7a063ee83b
Retrieve build task ID from environment when available 2021-06-09 16:42:09 -04:00
Barret Rennie bce6d3a52c
Remove debug logging of child handles 2021-05-11 13:22:45 -04:00
Barret Rennie 147ea2ab3b
Always overwrite recordings 2021-05-11 13:22:45 -04:00
Barret Rennie ad5c9f8b01
Hide the cursor while the splash is shown
We move the cursor to the bottom of the screen when we show the splash
so that it does not interfere with visual metrics.
2021-05-11 13:22:45 -04:00
Barret Rennie f95c7b9c74
Detect CPU idle percentage over an interval
Previously we were using the overall CPU idle percentage since the
machine started, instead of measuring the idle percentage over an
interval (like we were already doing with disk IO counters). Now we
measure the CPU usage over the same interval that we measure IO counters
and use that for determining if we are idle.
2021-05-11 13:22:44 -04:00
Barret Rennie a8e362f263
Perform visual metrics analysis 2020-10-23 17:34:21 -04:00
Barret Rennie f52abd035e
Vendor visualmetrics.py 2020-10-20 18:18:06 -04:00
Barret Rennie 3b7aac42e6
Remove ffmpeg_path from config
We are importing visualmetrics.py which requires ffmpeg to be on the
PATH.
2020-10-20 18:18:06 -04:00
Barret Rennie 373dc20801
Log to stderr instead of stdout
We now log to stdout so that we can separate the logging from the
results of the analysis. We can then write the visual metrics JSON to
stdout and it can be consumed by other programs (e.g., the Taskcluster
worker).
2020-10-20 18:18:05 -04:00
Barret Rennie b4d9226da6
Add an option to keep the video from fxrecorder 2020-10-20 18:18:05 -04:00
Barret Rennie c486b7fad3
Paint the splash orange instead of red 2020-10-20 18:18:05 -04:00
Barret Rennie 085bba8709
Add a frontend for video analysis 2020-10-20 18:18:05 -04:00
Barret Rennie eb8bf59420
Unrefactor {fxrunner,fxrecorder}::main 2020-10-20 18:18:04 -04:00
Barret Rennie 57d0996bee
Fix typo in FfmpegRecordingError 2020-10-20 18:18:04 -04:00
Barret Rennie c6e88390a0
Remove reference to cargo beta in README.md 2020-10-20 18:18:04 -04:00
Barret Rennie d0bb5f4334
Add a multi-line logging drain
The `MultiLineDrain` and `MultiLineSerializer` provide a logging output
with key-value pairs on separate lines. Multi-line strings (e.g., for
logging of stdout/stderr of subprocesses) are logged after a newline and
indented relative to the key. For example, a log call like

```rust
slog::info!(
    logger,
    "message";
    "key" => "value",
    "multi-line" => "string\nwith\nnewlines\n"
);
```

would be rendered as:

```
2019-10-01 01:43:48.578Z INFO message
  multi-line:
    string
    with
    newlines
  key: value
```
2020-09-30 21:46:45 -04:00
Barret Rennie 5a8eb028b1
Use TermDecorator for logging
Using `PlainDecorator` and passing it a copy of `std::io::stdout()`
results in it locking the stdout mutex every time we log, which is what
we were trying to avoid by using slog_async. Now we use the
`TermDecorator`, which uses the `term` crate to talk to the underlying
file handle directly, avoiding locking.
2020-09-29 16:36:08 -04:00
Barret Rennie 408f059c5c
Add loggers for integration-tests
I've been periodically using an actual logger inside
integration-tests to debug things, so I figured it would be actually
worthwhile to add actual logging support so you don't have to modify the
unit tests to produce output.

We now provide a logger to each of the RunnerProto and RecorderProto in
tests that prefixes the records with the process (runner, recorder) that
it would occur in.

Since `cargo test` runs unit tests in parallel, to get useful output you
need to use:

```
cargo test -p integration-tests -- --nocapture --test-threads 1
```

to force them to run sequentually. Otherwise, output from several tests
will be mixed together.
2020-09-29 16:36:05 -04:00
Barret Rennie 4f52550351
Record Firefox execution
`fxrecorder` now starts a recording session via its `Recorder` and
requests `fxrunner` to start Firefox. After a delay, Firefox is shut
down and the recording stops.

Recorder and Splash mocks are also added for integration tests, but as
of yet they do nothing.
2020-09-29 15:55:25 -04:00
Barret Rennie 3cf57dccc8
Build a fake firefox.exe for integration-tests 2020-09-29 15:55:25 -04:00
Barret Rennie c9dfca73d5
Add the Recorder trait
The Recorder trait is responsible for capturing a video stream and
transforming it into a video file. The recorder provided by `fxrecorder`
is the `FfmpegRecorder` which does the recording via `ffmpeg.exe`.
2020-09-29 15:55:25 -04:00
Barret Rennie f62d658a48
Add path helpers to SessionInfo 2020-09-29 15:55:24 -04:00
Barret Rennie b58be00fee
Fix up config options for fxrecorder
The `x` and `y` members of the `Size` struct were not marked public and
so we couldn't reference them to generate the ffmpeg command line.

Additionally, the documentation of the `buffer_size` field referenced
the wrong ffmpeg flag, and the documentation of the `output_size` field
had a typo.
2020-09-29 15:55:24 -04:00