department-of-veterans-affairs / va.gov-cms

Editor-centered management for Veteran-centered content.
https://prod.cms.va.gov
GNU General Public License v2.0
97 stars 69 forks source link

[Zero silent failures SPIKE] Facility locator / facilities-api #19249

Open jilladams opened 1 week ago

jilladams commented 1 week ago

Description

The following features needs to be evaluated to determine if it meets the standards for 'zero silent failures', which is a user-facing transaction that is submitted to the back-end system.

OCTODE guidance states:

Problem Statement:

Artifacts

User story

AS A I WANT SO THAT

Engineering notes / background

If you need to set up monitoring in DataDog:

Set up monitoring in Datadog

Follow this guidance on endpoint monitoring to get going. Then following the guidance on monitoring performance to get up to speed with Datadog.

Examples

Additional examples

Analytics considerations

Quality / testing notes

Acceptance criteria

Checklist

Start

Monitoring

⚠️ Failure to have endpoint monitoring in place is a blocking QA standard at Staging review as of 9/10/24. If you answered no to any of the questions above, you will be blocked from shipping at the Staging review touchpoint in Collab Cycle.

Reporting errors

Documentation

flowchart TD
    A(("fa:fa-user User on va.gov/find-locations")) --> B("fa:fa-location-arrow  User enters address or selects use current location")
    B --> C("fa:fa-caret-down Selects VA Health/VA Benefits/VA Cemeteries/Vet Centers") & D("fa:fa-caret-down Community Pharmacies in VA's network") & E("fa:fa-caret-down Selects Urgent Care all in-network or Emergency Care all in-network") & E2("Selects Community Providers in VA's network")
    C --> F("Data transmission")
    D --> F
    E --> F
    F -- Success (2xx) --> G("Output shown to user")
    F -- Error (400 or 500) --> H("Error shown to user<br>'Find VA locations isn’t working right now'")
    E2 --> I("Requests services")
    I -- Success --> J("User selects service form combobox")
    J --> F
    I -- Error --> K("Silent failure")

User experience

Creating a user data flow diagram is a requirement of the Zero silent errors initiative and will be a required asset at the Architecture Intent touchpoint of the Engineering and Security track of Collaboration Cycle.

Learn how to create a user data flow diagram

File silent errors issues in Github

We want to know about your silent errors so that we can help you to fix them. To do this, follow the process in the Managing Errors document.

We don't have any silent errors!

Great! Please let us know that you went through the checklist above as a team and did not find any silent failures in our Slack channel: #zero-silent-failures. You don't have to hang out in there once you have notified us. Just pop in, tell us who you are (which team and in which portfolio) and that no failures were found. Thanks!

eselkin commented 1 week ago

The prime candidates for needing more error notification are: If PPMS is down and someone selects "Community Providers in VA's network" They will not be notified that the "Service type" will not be populated with proper data so even if they enter data it will complain that they are not selecting something even though it's the system not providing options for them to select.

No network data will be transmitted to vets-api/PPMS when they type some option for "Service type" but don't select anything because a valid selection needs to be made to submit. However, the user will not be aware of this.

/facilities_api/v2/ccp/services does not have its own controller so it can't be monitored directly on datadog, unless we add some properties to vets-api to identify it

eselkin commented 5 days ago

I created this issue: https://github.com/department-of-veterans-affairs/va.gov-cms/issues/19332