Skip to content
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

Add monitoring of prod to alert if injected header / footer fail during injection #11255

Closed
6 of 20 tasks
swirtSJW opened this issue Oct 19, 2022 · 7 comments
Closed
6 of 20 tasks
Assignees
Labels
Injected header Proxy-rewrite JS app to present header on TeamSites; owned by Public Websites team non-quarter-prio (PW) not related to quarterly priorities Public Websites Scrum team in the Sitewide crew sitewide VA.gov frontend CMS team practice area

Comments

@swirtSJW
Copy link
Contributor

swirtSJW commented Oct 19, 2022

User Story or Problem Statement

As a maintainer of injected headers and footer, I want to be alerted if a defect occurs on prod teamsite injections so that I don't have to rely on others to report the issue.

Given the number of sites and subsites that rely on the injected header and footer, it is vital that we know when they fail in production so monitoring of prod is needed.

Assumptions

Acceptance Criteria

  • Get Datadog access
  • If there is a visual failure of the injected header it is logged and notified.
  • If there is a visual failure of the injected footer it is logged and notified.
  • Documentation is updated.

Implementation steps

Visual regression testing could be very useful in this.

Design principles

Veteran-centered

  • Single source of truth: Increase reliability and consistency of content on VA.gov by providing a single source of truth.
  • Accessible, plain language: Provide guardrails and guidelines to ensure content quality.
  • Purposely structured content: Ensure Content API can deliver content whose meaning matches its structure.
  • Content lifecycle governance: Produce tools, processes and policies to maintain content quality throughout its lifecycle.

Editor-centered

  • Purpose-driven: Create an opportunity to involve the editor community in VA’s mission and content strategy goals.
  • Efficient: Remove distractions and create clear, straightforward paths to get the job done.
  • Approachable: Offer friendly guidance over authoritative instruction.
  • Consistent: Reduce user’s mental load by allowing them to fall back on pattern recognition to complete tasks.
  • Empowering: Provide clear information to help editors make decisions about their work.

CMS Team

Please check the team(s) that will do this work.

  • Program
  • Platform CMS Team
  • Sitewide Crew
  • ⭐️ Sitewide CMS
  • ⭐️ Public Websites
  • ⭐️ Facilities
  • ⭐️ User support
@swirtSJW swirtSJW added Enhancement Issue type: New feature or request Needs refining Issue status labels Oct 19, 2022
@github-actions github-actions bot added the Public Websites Scrum team in the Sitewide crew label Oct 19, 2022
@ryguyk ryguyk added the Injected header Proxy-rewrite JS app to present header on TeamSites; owned by Public Websites team label Oct 19, 2022
@jilladams jilladams added the VA.gov frontend CMS team practice area label Oct 20, 2022
@wesrowe wesrowe mentioned this issue Oct 20, 2022
19 tasks
@jilladams jilladams removed the Needs refining Issue status label Oct 20, 2022
@wesrowe wesrowe mentioned this issue Oct 31, 2022
18 tasks
@wesrowe wesrowe removed the Enhancement Issue type: New feature or request label Aug 30, 2023
@wesrowe wesrowe added the Needs refining Issue status label Sep 11, 2023
@wesrowe
Copy link
Contributor

wesrowe commented Sep 11, 2023

Removed estimate since the ACs need refinement.

Per DaveC, injected is higher prio than non-injected.

@wesrowe wesrowe added the non-quarter-prio (PW) not related to quarterly priorities label Sep 12, 2023
@jilladams jilladams removed the Needs refining Issue status label Sep 13, 2023
@jilladams
Copy link
Contributor

@jilladams
Copy link
Contributor

Note: once #15195 and #12978 are refined tomorrow, this ticket might get swapped out in favor of one of those. Pursuing datadog access is smart, but other sprint tickets should maybe come first for coding in case this one gets deprioritized.

@chriskim2311
Copy link
Contributor

chriskim2311 commented Oct 2, 2023

Some Insights from doing this test in Datadog

Datadog Browser Synthetic Tests

Datadog has browser tests that can be run directly in the browser against production websites. The use-case for these tests can be to verify actual user-flow and elements that are currently in production. Tests can target and verify elements, buttons, input and text, navigation on the FE of a webpage.

Setting up the tests

Test Details
Private Zenhub Image

  1. Add starting URL
  2. Name the test
  3. Include details about Team, and Environment
  4. Indicate browsers and devices to run the test against

Private Zenhub Image

  1. Select locations to run the test, ie: prod, dev, staging
  2. Can define retry conditions for a failed test
  3. Define recurring schedule for the test

Private Zenhub Image

  1. Configure the monitor alert for the test. Can be sent via slack or email. If setting up a new slack alert that has not been set up yet. Will need to set up the channel in the datadog slack integration before adding it here.
  2. Set Priority
  3. Set permissions if needed.
  4. Save the test details

Setting up recording
Private Zenhub Image

  1. When setting up the recording you can click Start Recording and open the pop up window.
  2. You can select elements while you're recording and can record any interactions with the page.
  3. You can also set up assertions to verify elements are on the page, verify contents, verify URL, etc.
  4. Other things to consider that can be important. Wait can be used for things that may not load quick initially or if you want to test a link you can wait for it to load. Hover, Scroll, Press Key are other special assertions that could be useful when trying to capture certain actions.
  5. After setting up your test it will make an initial run, then will run based on your initial test settings.

@chriskim2311
Copy link
Contributor

chriskim2311 commented Oct 2, 2023

@jilladams @wesrowe

@randimays We can go over the notes if you have any questions!

I have left some quick notes for setting up a new synthetic browser test.

Here are the current tests that have been created.

https://benefits.va.gov/benefits/
https://vagov.ddog-gov.com/synthetics/details/yms-fpg-s8t

https://www.va.gov/health/
https://vagov.ddog-gov.com/synthetics/details/a5r-z2x-qzv

@jilladams
Copy link
Contributor

Nice!

@jilladams
Copy link
Contributor

@chriskim2311 took a deeper look at these today, and it's making sense to me. I'm content that ACs are met, and we've established we'll have you do a Topic Dive on 10/16 to share notes about the Data dog learnings / put these findings int he Topic Dive documentation for future. Closing!

@wesrowe wesrowe mentioned this issue Oct 6, 2023
28 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Injected header Proxy-rewrite JS app to present header on TeamSites; owned by Public Websites team non-quarter-prio (PW) not related to quarterly priorities Public Websites Scrum team in the Sitewide crew sitewide VA.gov frontend CMS team practice area
Projects
None yet
Development

No branches or pull requests

6 participants