-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[Fleet] Create Synthetics migration for 8.8.0 #154952
[Fleet] Create Synthetics migration for 8.8.0 #154952
Conversation
Pinging @elastic/fleet (Team:Fleet) |
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
Sorry for pinging folks. Meant to put this in draft. |
…thub.com/dominiqueclarke/kibana into feat/synthetics-package-policy-migration
Pinging @elastic/uptime (Team:uptime) |
throttling: string | ||
): { download: number; upload: number; latency: number } => { | ||
try { | ||
const [download = 5, upload = 3, latency = 20] = throttling.match(/\d+\.?\d*/g) || []; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TIL . Looks like fancy string split :)
if (!throttling || throttling?.id === 'no-throttling' || !throttling?.value) { | ||
return 'false'; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think we need to keep this when throttling is disabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
YOu are absolutely right. Thanks for the catch. I think I got rid of this in a bad merge conflict resolution. I'll write a unit test to make sure this doesn't happen again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM !!
Tested schedule and throttling migration !!
💛 Build succeeded, but was flaky
Failed CI StepsMetrics [docs]Async chunks
Unknown metric groupsESLint disabled line counts
Total ESLint disabled count
History
To update your PR or re-run it, just comment with: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fleet changes 🚀
## Summary Resolves elastic#155215 Resolves elastic#142653 Handles two primary migrations for Synthetics integration policies. 1. Rounds deprecated schedules to supported schedules 2. Transforms old deprecated throttling schema `5u/3u/20l` to support JSON schema `{ download: 5, upload: 3, latency: 20 }` Schedule migration --- Before 16m schedule <img width="200" alt="Screen Shot 2023-04-19 at 6 17 35 PM" src="https://user-images.githubusercontent.com/11356435/233211993-086ce51e-a056-407f-900b-15638238a243.png"> After <img width="214" alt="Screen Shot 2023-04-19 at 6 44 08 PM" src="https://user-images.githubusercontent.com/11356435/233215688-e049e2b7-6958-4376-9362-a192aa8e94db.png"> Before 4m schedule <img width="190" alt="Screen Shot 2023-04-19 at 6 17 29 PM" src="https://user-images.githubusercontent.com/11356435/233211995-6b7b2927-6851-4947-ab8c-7fb041da03e1.png"> After <img width="208" alt="Screen Shot 2023-04-19 at 6 44 30 PM" src="https://user-images.githubusercontent.com/11356435/233215685-89f093e6-3308-4103-9b98-5acb7a9b5a0a.png"> Before 8m schedule <img width="202" alt="Screen Shot 2023-04-19 at 6 17 23 PM" src="https://user-images.githubusercontent.com/11356435/233211997-9a60c54c-4867-4ccd-a8eb-5b62d59060bf.png"> After <img width="201" alt="Screen Shot 2023-04-19 at 6 44 22 PM" src="https://user-images.githubusercontent.com/11356435/233215687-f3a900cf-b3ec-44f5-b84b-d292dbad623d.png"> Before 2m schedule <img width="193" alt="Screen Shot 2023-04-19 at 6 17 16 PM" src="https://user-images.githubusercontent.com/11356435/233211999-3d42ad71-b72b-4876-911e-5d79564f2351.png"> After <img width="194" alt="Screen Shot 2023-04-19 at 6 43 55 PM" src="https://user-images.githubusercontent.com/11356435/233215690-fd3f13dc-5e32-4904-b804-cbcfcabf0760.png"> Throttling migration --- Before throttling: false <img width="163" alt="Screen Shot 2023-04-19 at 6 17 00 PM" src="https://user-images.githubusercontent.com/11356435/233212002-3a891b25-fc2e-4cce-a730-abf8695d5423.png"> After <img width="185" alt="Screen Shot 2023-04-19 at 6 49 50 PM" src="https://user-images.githubusercontent.com/11356435/233216370-eed97645-26e8-44f2-8f72-8d1e19f39c35.png"> Before custom throttling <img width="274" alt="Screen Shot 2023-04-19 at 6 16 54 PM" src="https://user-images.githubusercontent.com/11356435/233212004-a9fe82fc-d23a-4d54-a5ad-20971c3df211.png"> After <img width="169" alt="Screen Shot 2023-04-19 at 6 49 44 PM" src="https://user-images.githubusercontent.com/11356435/233216389-f2803ca9-3429-4f85-b1ee-0f5a8e02db92.png"> Before default throttling <img width="212" alt="Screen Shot 2023-04-19 at 6 16 48 PM" src="https://user-images.githubusercontent.com/11356435/233212007-d9fbcae7-6f6e-4cd0-b909-629cfc72b7dc.png"> After <img width="181" alt="Screen Shot 2023-04-19 at 6 49 35 PM" src="https://user-images.githubusercontent.com/11356435/233216412-70336d0e-1e45-4809-bd92-c4524a144b99.png"> ### Testing 1. Check out the 8.7.0 branch 2. Create a Synthetics private location at `app/synthetics/settings/private-locations`. 3. Create a monitor, configured at that private location, with invalid schedules, ideally 1 or each type (http, icmp, browser, tcp) with an invalid schedule (for example, 2, 8, 11, 16, 333, etc) at `app/uptime/add-monitor`. Note: you must use Uptime to create monitors with arbitrary schedules. The Synthetics app will not let you. 4. Create a browser monitor, configured with your private location, with throttling turned off. 5. Create a browser monitor, configured for your private location, with a custom throttling profile. 6. Check out this PR and wait for saved object migration to run 7. Navigate to the agent policy for your monitor. Confirm the schedules were updated to supported schedules. Confirm the throttling configs now appear in yaml. Confirm that `throttling: false` remains for the throttling config that was turned off.
Summary
Resolves #155215
Resolves #142653
Handles two primary migrations for Synthetics integration policies.
5u/3u/20l
to support JSON schema{ download: 5, upload: 3, latency: 20 }
Schedule migration
Before 16m schedule
After
Before 4m schedule
After
Before 8m schedule
After
Before 2m schedule
After
Throttling migration
Before throttling: false
After
Before custom throttling
After
Before default throttling
After
Testing
app/synthetics/settings/private-locations
.app/uptime/add-monitor
. Note: you must use Uptime to create monitors with arbitrary schedules. The Synthetics app will not let you.throttling: false
remains for the throttling config that was turned off.