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

25 Коммитов

Автор SHA1 Сообщение Дата
Sarah Clements 0508ab9018
Update docs (#7368)
* Add a data ingestion section
* Update section on deployments
2022-02-08 18:09:41 +00:00
Sebastian Hengst a19ef39ee0
Bug 1742068 - update whatsdeployed.io link with version including prototype instance (#7321) 2021-11-22 11:14:40 +00:00
Sebastian Hengst 33de91b9cb
Bug 1740594 - replace references to IRC (#7316) 2021-11-18 11:37:01 +00:00
Sarah Clements 091d422ca0
Make changes to docs (#7184)
* Make changes to docs
* Add cert for prototype connections
* Add TLS_CERT_PATH variable to docker yaml file
* Change troubleshooting and database sections of docs
2021-06-22 16:49:41 -07:00
Sarah Clements 5ae9957414
Update docs with new procedures with Treeherder migration off heroku (#7145)
* changes to infrastructure and troubleshooting pages
* remove architecture page
* remove mention of heroku elsewhere in docs
* Remove additional mentions of RDS and move RDS replica access section
2021-05-24 11:39:44 -07:00
Ben Hearsum (he/him) dd0216ae40
Re-re-re-remove activedata and bigquery (#7056)
* Bump python to 3.7.10 to try to fix issues with typing module

* Remove requirement on typing again

* Remove bigquery and activedata references (#7051)

* Remove activedata and bigquery again

* Add importlib-metadata to dev requirements

* Remove remnants of selenium tests from setup.cfg

* Don't call taskcluster.aio.createSession outside of async functions (it's not allowed)

* Disable newrelic linters to fix issue with imp module

See https://discuss.newrelic.com/t/python-warnings-during-pytest/114897

* Fix linting errors

* Use pytest-xdist to speed up tests

* Properly ignore newrelic warnings

* Disable django.contrib.staticfiles in tests, because it breaks everything

* Set TREEHERDER_DEBUG=False for unit tests, because it breaks some tests

* Fix linting issues
2021-03-23 09:15:32 -04:00
Ben Hearsum (he/him) 07b0208d73
Backout activedata work again (#7057) 2021-03-17 16:50:16 -04:00
Ben Hearsum (he/him) 687146ce28
Remove bigquery and activedata references (#7051) 2021-03-17 15:24:35 -04:00
Ben Hearsum b6e844093c
Revert activedata & bigquery EOL (#7050) 2021-03-12 14:31:34 -05:00
Ben Hearsum 204783a4be
Bug 1696065 - Remove bigquery and activedata references (#7047) 2021-03-11 13:50:39 -08:00
ionutgoldan df7fe1848e
Bug 1683042 - Document Perfherder's data retention policy 2021-01-13 09:44:44 +02:00
Sarah Clements 21d5561673
Replace Travis with CircleCi (#6935)
* Add .circleci/config.yml
* Initial set up with node and yarn config
* set up heroku builds
* add python test config
* remove most travis references and travis.yml
2020-12-23 17:09:58 -08:00
Cameron Dawson f326613cf3
Add new perf table to GRANT docs (#6820) 2020-10-21 09:15:47 -07:00
Armen Zambrano a49979c5fb
docs: Update info for creating MySql users (#6484) 2020-06-03 13:40:17 -04:00
Sarah Clements ca001cb46e
Update docs with grant access (#6276) 2020-04-13 09:45:50 -07:00
Cameron Dawson a31426bce0
Bug 1611334 - Remove support for GraphQL (#6235)
Co-authored-by: Kyle Lahnakoski <kyle@lahnakoski.com>
2020-04-07 17:36:57 -04:00
Shubham Kumar 10a2040774 Add markdownlint pre-commit hook and fixed docs
We also add it as part of the Travis execution.
2020-04-07 09:41:54 -04:00
Sarah Clements 29ffbe0ae2
Revert "Run markdown checks in Travis and add it as a pre-commit hook (#6236)" (#6269)
This reverts commit bf67e894b7.
2020-04-03 16:41:16 -04:00
Shubham Kumar bf67e894b7
Run markdown checks in Travis and add it as a pre-commit hook (#6236)
Closes #6185 

- Add markdownlint default rules
- Add `pre-commit` in `dev.txt` with proper hashing required when running Travis
- Add hook in `.pre-commit-config.yaml`
- Refer [here](https://github.com/igorshubovych/markdownlint-cli) for documentation
2020-04-03 09:50:26 -04:00
Sarah Clements 73c6902974 Update doc section for replica access to include new tables (#5690) 2019-11-28 10:05:53 -05:00
Armen Zambrano G 1cf294d9e7 Update docs to create user MySql access 2019-09-11 14:01:29 -04:00
Armen Zambrano G 9de99b4711 Bug 1395254 - Consume Taskcluster Pulse messages from standard queue exchanges
Currently, Treeherder consumes Pulse messages from an intermediary service called `taskcluster-treeherder`.
Such service needs to be shut down and its functionality imported into Treeherder.

In order to do this we need to switch to the standard Taskcluster exchanges as defined in here:
https://docs.taskcluster.net/docs/reference/platform/queue/exchanges

On a first pass we are only including the code from `taskcluster-treeherder` without changing
much of Treeherder's code. The code is translated from Javascript to Python and only some minor
code changes were done to reduce the difficulty on porting the code without introducing bugs.
Internally, on this first pass, we will still have an intermediary data structure representing
what `taskcluster-treeherder` is emitting, however, we will stop consuming the messages
from it and be able to shut it down.

Instead of consuming from one single exchange we will be consuming multiple ones. Each one representing
a different kind of task (e.g. pending vs running).

In order to test this change you need to open 5 terminal windows and follow these steps:

* On the first window run `docker-compose up`
* On the next three windows `export PULSE_URL="amqp://foo:bar@pulse.mozilla.org:5671/?ssl=1"` and run the following commands:
      * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_jobs`
      * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_tasks`
      * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_pushes`
* On the last window run `docker-compose run backend celery -A treeherder worker -B --concurrency 5`
* Open on your browser `http://localhost:5000`

This is just a summary from [the docs](https://treeherder.readthedocs.io/pulseload.html).

= ETL management commands =
This change also introduces two ETL management command that can be executed like this:

== Ingest push and tasks ==

This script can ingest into Treeherder all tasks associated to a push.
It uses Python's asyncio to speed up the ingestion of tasks.

```bash
./manage.py ingest_push_and_tasks
```

== Update Pulse test fixtures ==

```bash
./manage.py update_pulse_test_fixtures
```

This command will read 100 Taskcluster Pulse messages, process them and store them as test fixtures
under these two files: `tests/sample_data/pulse_consumer/taskcluster_{jobs,metadata}.json`

Following this work would be to get rid of the intermediary job representation ([bug 1560596](https://bugzilla.mozilla.org/show_bug.cgi?id=1560596) which will
clean up some of the code and some of the old tests.

= Extra script =
Script that permits comparing pushes from two different Treeherder instances.

```
usage: Compare a push from a Treeherder instance to the production instance.
       [-h] [--host HOST] --revision REVISION [--project PROJECT]

optional arguments:
  -h, --help           show this help message and exit
  --host HOST          Host to compare. It defaults to localhost
  --revision REVISION  Revision to compare
  --project PROJECT    Project to compare. It defaults to mozilla-central
```

= Other changes =

Other changes included:

* Import `taskcluster-treeherder`'s validation to ensure we're not fed garbage.
* Change `yaml.load(f)` for `yaml.load(f, Loader=yaml.FullLoader)`. Read [this](https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation) for details
* Introduce `taskcluster` and `taskcluster-urls` as dependencies
* The test `test_retry_missing_revision_never_succeeds` makes no sense because
we make Json validation on the Pulse message
2019-07-29 09:42:57 -04:00
Armen Zambrano G 7f04a91af7 Revert "Bug 1395254 - Consume Taskcluster jobs from standard queue exchanges (#5042)"
This reverts commit 75dc375a93.
2019-07-23 16:24:13 -04:00
Armen Zambrano 75dc375a93
Bug 1395254 - Consume Taskcluster jobs from standard queue exchanges (#5042)
* Bug 1395254 - Consume Taskcluster Pulse messages from standard queue exchanges

Currently, Treeherder consumes Pulse messages from an intermediary service called `taskcluster-treeherder`.
Such service needs to be shut down and its functionality imported into Treeherder.

In order to do this we need to switch to the standard Taskcluster exchanges as defined in here:
https://docs.taskcluster.net/docs/reference/platform/queue/exchanges

On a first pass we are only including the code from `taskcluster-treeherder` without changing
much of Treeherder's code. The code is translated from Javascript to Python and only some minor
code changes were done to reduce the difficulty on porting the code without introducing bugs.
Internally, on this first pass, we will still have an intermediary data structure representing
what `taskcluster-treeherder` is emitting, however, we will stop consuming the messages
from it and be able to shut it down.

Instead of consuming from one single exchange we will be consuming multiple ones. Each one representing
a different kind of task (e.g. pending vs running).

In order to test this change you need to open 4 terminal windows and follow these steps:

* On the first two windows `export PULSE_URL="amqp://foo:bar@pulse.mozilla.org:5671/?ssl=1"` and run the following commands:
  * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_jobs`
  * `docker-compose run -e PULSE_URL backend ./manage.py pulse_listener_pushes`
* On the third window run `docker-compose run backend celery -A treeherder worker -B --concurrency 5`
* On the last window run `docker-compose up`
* Open on your browser `http://localhost:5000`

This is just a summary from [the docs](https://treeherder.readthedocs.io/pulseload.html).

= ETL management commands =
This change also introduces two ETL management command that can be executed like this:

== Ingest push and tasks ==

This script can ingest into Treeherder all tasks associated to a push.
It uses Python's asyncio to speed up the ingestion of tasks.

```bash
./manage.py ingest_push_and_tasks
```

== Update Pulse test fixtures ==

```bash
./manage.py update_pulse_test_fixtures
```

This command will read 100 Taskcluster Pulse messages, process them and store them as test fixtures
under these two files: `tests/sample_data/pulse_consumer/taskcluster_{jobs,metadata}.json`

Following this work would be to get rid of the intermediary job representation ([bug 1560596](https://bugzilla.mozilla.org/show_bug.cgi?id=1560596) which will
clean up some of the code and some of the old tests.

= Other changes =

Other changes included:

* Import `taskcluster-treeherder`'s validation to ensure we're not fed garbage.
* Change `yaml.load(f)` for `yaml.load(f, Loader=yaml.FullLoader)`. Read [this](https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation) for details
* Introduce `taskcluster` and `taskcluster-urls` as dependencies
* The test `test_retry_missing_revision_never_succeeds` makes no sense because
we make Json validation on the Pulse message
2019-07-23 13:14:18 -04:00
Ed Morley 6945c4c471
Bug 1165259 - Add infrastructure documentation (#4766)
- Adds a new "infrastructure" section to the docs, which describes
  architecture, administration and troubleshooting (fixes bug 1165259).
- Adds code comments to any deployment-related files in the repository.
- Adds documentation for the various ways in which users can access
  Treeherder data (fixes bug 1335172).
- Reorganises the structure of some of the existing non-infrastructure
  docs, to make the documentation easier to navigate.
2019-03-11 21:39:34 +00:00