-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
quicksearch not showing results #154
Comments
This has recurred. Adjusting the issue to regularly check status and trigger a rebuild if it fails. |
I created a repository at https://github.com/Police-Data-Accessibility-Project/health-monitoring which I'll use to develop health monitoring scripts. It'll be fairly simple to start with, but its functionality is distinct enough that I think even now it's useful to keep it separate from other repositories. Over time, we can expand it with more in-depth health checks. |
@maxachis thanks, that's a good idea. I added a README and LICENSE. |
@josh-chamberlain I'll need the WEBHOOK_URL that is used to post dev alerts to discord in order to finish setting up a basic alerting system. Current plan is to be conservative and have it call the search endpoint every hour. After that, I'll look into using the Digital Ocean API to trigger rebuilds on failure, but first step is to make sure it works properly and doesn't count false positives, which unfortunately means we may have to wait a little while until it fails again. |
@maxachis sounds like a good plan. DMing it to you, and adding it as an org-level secret...one day we could rename it, probably. i'll work on wrangling our secrets a bit better so we know what they're for. |
@josh-chamberlain I've finished up the first draft of the health-monitoring repository and set it up in the "Automation-Manager" Droplet (formerly "Database-Automation-Manager", but renamed since this part doesn't touch the database). As designed, the manager will log errors to discord, and log all events to a rotating log in the root directory of the repository, which rotates logs every day at midnight. At the moment, this is designed just to allow us to confirm its immediate performance of intended logic, but it could be expanded (and the rate of log rotation modified) in the future. Now it's going to be a waiting game until the search fails. If everything works properly, it'll post to discord when it occurs. AsideWe may want to add documentation for the Automation-Manager droplet, discussing what it does and what repositories it hosts. |
@maxachis ah, thank you! That's great. A rotating log is great. Could we do it every week or 3 days, instead, just so they can be inspected even after a weekend or whatever? Yes, documentation for the automation-manager droplet is critical because it's difficult for me (and other less-technical or less-paying-attention people) to tell how things are deployed. I just asked on a separate issue if we were ready to make a github action for this.
out of curiosity: what makes the droplet better than periodically triggering a github action? I like the Action because it's pretty transparent/happens next to the code, but I'm sure you have more control this way. |
@josh-chamberlain Control is a major component of it, but also ease of development. Using GitHub Actions for more complex operations, such as prod-to-dev migration or health monitoring has, in my experience, been challenging due to several interrelated factors:
That being said, there are options that allow us to blend the two approaches:
|
@josh-chamberlain Additionally, I created an issue for adding documentation about the Automation Manager. |
thanks @maxachis , this is helpful. I'll save it in our ADRs so we know when/why to abandon a github action prototype for a deployed thing. |
(here's the ADR I made retroactively, visible if you have notion perms) |
I will say that Github Action is the better option for things that interface directly with the same repository it's located in and where we want to inspect changes immediately after or during pull requests. Tests, linting, security checks -- these all make sense to continue to include as Github Actions, both because:
Additionally, we may benefit from synchronizing all our different workflows through something like Jenkins, which would help formalize the more complex CI/CD processes and integrate them under a singular user interface. |
@josh-chamberlain Repository updated to have log rotate every week, and README updated to include the requested information! Have a look at the Readme and let me know if it looks good to you. |
@maxachis nice! thank you. I'm good to close this as |
Context
Sometimes, the app reaches a state where every search shows "no results" and we have to rebuild to fix it.
Steps to reproduce
currently unknown. typically, waiting around a week.
Fixing the symptoms
we may not be able to fix this, but we should rebuild the app when it stops responding. search must work.
The text was updated successfully, but these errors were encountered: