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

Provide users with a link to docs for help with project status problems #1812

Closed
rajivnathan opened this issue Jan 20, 2020 · 29 comments
Closed

Provide users with a link to docs for help with project status problems #1812

rajivnathan opened this issue Jan 20, 2020 · 29 comments

Comments

@rajivnathan
Copy link
Contributor

@rajivnathan rajivnathan commented Jan 20, 2020

Description of the enhancement:

As part of #1732 we discussed creating a troubleshooting doc for project status issues (eg. Why is my app stuck in starting state?). It would also be good to include a link to this doc from the IDEs in some cases. (eg. when the project status timeout has exceeded)

May need to consolidate with existing docs. For example, I found this:
https://www.eclipse.org/codewind/mdteclipsetroubleshooting.html#application-stuck-in-starting-state

Issue for the new doc: #2117

Proposed code changes

This is currently what the timeout dialog looks like in the VSCode extension:
image

We could have a general property that indicates to the IDEs that they should display a link. The new property could be included in the timeout event or other events.
eg.

"linkLabel": "Troubleshooting status"
"link": "https://www.eclipse.org/codewind/troubleshooting.html#checking-the-application-and-build-statuses",

The current event is:

message: projectStatusChanged
 data: {
  "projectID": "80d46e00-3d68-11ea-a131-75340c3788ad",
  "appStatus": "starting",
  "detailedAppStatus": {
    "severity": "WARN",
    "message": "Timeout: Pinging http://172.22.0.4:8080/health and http://172.22.0.4:8080/. The application is taking longer than expected to start. Please check the application logs for problems and ensure the project's 'healthCheck' setting is correct. Last error message received: Pinging http://172.22.0.4:8080/health and http://172.22.0.4:8080/",
    "notify": true
  }
}

An updated event with the linkLabel and link properties included would look like:

message: projectStatusChanged
 data: {
  "projectID": "80d46e00-3d68-11ea-a131-75340c3788ad",
  "appStatus": "starting",
  "detailedAppStatus": {
    "severity": "WARN",
    "message": "Timeout: Pinging http://172.22.0.4:8080/health and http://172.22.0.4:8080/. The application is taking longer than expected to start. Please check the application logs for problems and ensure the project's 'healthCheck' setting is correct. Last error message received: Pinging http://172.22.0.4:8080/health and http://172.22.0.4:8080/",
    "notify": true,
    "linkLabel": "Troubleshoot status",
    "link": "https://www.eclipse.org/codewind/troubleshooting.html#checking-the-application-and-build-statuses"
  }
}
@eharris369

This comment has been minimized.

Copy link

@eharris369 eharris369 commented Jan 23, 2020

The only thing I can think of is that the linkLabel should be translated according to the locale of the machine where the IDE is running. However it does not sound like we are going to translate any time soon. And we could handle this in the future by having the IDEs pass the locale to PFE.

@lentheivendra

This comment has been minimized.

Copy link
Contributor

@lentheivendra lentheivendra commented Jan 27, 2020

I'll take a look at this one for the pfe side

@lentheivendra

This comment has been minimized.

Copy link
Contributor

@lentheivendra lentheivendra commented Jan 27, 2020

/assign

@rajivnathan

This comment has been minimized.

Copy link
Contributor Author

@rajivnathan rajivnathan commented Jan 27, 2020

@eharris369 PFE has locale settings so when the IDE connects it can set the locale. Not sure whether the locale API is currently exposed but that would be trivial if/when we need it.

@micgibso

This comment has been minimized.

Copy link

@micgibso micgibso commented Jan 29, 2020

Currently considering the following issues, discussing with our Content Strategist, Mel Hopper about the best place to put them, and the best way to surface them.

  • Why is my project stuck in starting state?
  • How can I stop notifications about my project not running?
@elsony

This comment has been minimized.

Copy link
Member

@elsony elsony commented Jan 30, 2020

After discussing with the IDE team, we think we still need a way for the IDE to track if they have displayed the specific notification to the user before or not. Therefore, here is the extra that we need to do:

  1. Add a new field, e.g. notificaitonID, to the status message. The notificationID is specific to the instance of the problem. When the app status changes, e.g. from starting to started/stopped, we'll clear that notification. If the same problem happens again, the new message will be shown with a different notificationID.
  2. We'll deprecate the existing boolean "notification" field since it is redundant with the new notificationID
  3. IDE will use this new field to decided to prevent the same message to keep showing to the user.
@eharris369

This comment has been minimized.

Copy link

@eharris369 eharris369 commented Feb 3, 2020

Can the link label be more descriptive like Application status troubleshooting information instead of Troubleshooting status?

@lentheivendra

This comment has been minimized.

Copy link
Contributor

@lentheivendra lentheivendra commented Feb 3, 2020

Can the link label be more descriptive like Application status troubleshooting information instead of Troubleshooting status?

Agreed, will change

@lentheivendra

This comment has been minimized.

Copy link
Contributor

@lentheivendra lentheivendra commented Feb 3, 2020

Some details on implementation discussions for adding notification ID per problem instance:

  1. Use current ProjectState app status map in projectStatusController.ts and add a list of notification IDs paired to a "problem ID" (IDs to internally differentiate between different kinds of status problems i.e. ping count limit exceeded during app start, or app went from starting to stopped, etc). Though currently it might be impossible for both the current known problems to exist at the same time for a given app state, it could be possible in the future
  2. When the app status transitions, the notification IDs are all cleared if any exist
  3. For any app status, if a known problem is hit, and a notifcation ID doesn't already exist for that specific problem: then generate a new ID
  4. On detailed app status event json, emit all notification IDs as a json array. The IDEs can then cross check these with the IDs they're already tracking to decide if user needs notification or not.
  5. For now, keep the the existing 'notify:' boolean in event json?
  6. After 'notify:' is removed (post 0.9.0?), if a 'notificationID:' exists in the json then that's like the old 'notify: true', if it doesn't exist then no need for IDE to notify

@rajivnathan @elsony let me know if I missed something or corrections are needed.
@eharris369 please provide any thoughts , esp on 4), 5) & 6)

@eharris369

This comment has been minimized.

Copy link

@eharris369 eharris369 commented Feb 3, 2020

I am confused about the array of notification IDs in the detailed app status. Will there be different messages for each id? Otherwise, how does the IDE know which id goes with the current message?

@micgibso

This comment has been minimized.

Copy link

@micgibso micgibso commented Feb 4, 2020

@thisguy1 See above for IDE status request

@lentheivendra

This comment has been minimized.

Copy link
Contributor

@lentheivendra lentheivendra commented Feb 4, 2020

@eharris369 I'll talk to @rajivnathan some more and confirm soon, but I believe to handle the "multiple problems occurring when app is in same state" case, we can handle it internally, and as far as the events the IDE sees are concerned, it could just be one event per problem, with one notification ID and message/link/etc.

@elsony

This comment has been minimized.

Copy link
Member

@elsony elsony commented Feb 4, 2020

@lentheivendra As discussed, each notification event that we send to the IDE will only has one notification ID associate with it. The array is only used internally within Turbine to track the unique IDs. That's just internal implementation.

tetchel added a commit to tetchel/codewind-vscode that referenced this issue Feb 5, 2020
eclipse/codewind#1812

Signed-off-by: Tim Etchells <timetchells@ibm.com>
@tetchel

This comment has been minimized.

Copy link
Contributor

@tetchel tetchel commented Feb 5, 2020

do we have new doc coming for 0.9 for this? it looks like the link is:
http://codewind-docs.rtp.raleigh.ibm.com:4321/codewind/troubleshooting.html#checking-the-application-and-build-statuses

which has very little info:
image

jopit pushed a commit to eclipse/codewind-vscode that referenced this issue Feb 5, 2020
eclipse/codewind#1812

Signed-off-by: Tim Etchells <timetchells@ibm.com>
@sishida

This comment has been minimized.

Copy link
Contributor

@sishida sishida commented Feb 5, 2020

@tetchel Hi, Tim, I just checked our doc pull requests and currently don't see a PR for updating this doc. @micgibso is out of the office for the rest of the week, but please let Jake or I know if we can help with anything! Thank you!

@tetchel

This comment has been minimized.

Copy link
Contributor

@tetchel tetchel commented Feb 6, 2020

looks like it is #1269 though that's specific to the appsody serverless stacks, we should group that with it failing to start because the port or application endpoint is wrong in the project settings https://www.eclipse.org/codewind/mdt-vsc-commands-project.html#configuring-project-settings

@rajivnathan

This comment has been minimized.

Copy link
Contributor Author

@rajivnathan rajivnathan commented Feb 6, 2020

@sishida @tetchel Yes, that doc was only meant to be linked temporarily until we have the new doc referenced in the description of this issue that should cover troubleshooting of app status in general. @sishida Spoke to Jake during the iterative-dev call and @ssh24 can help out with technical details.

@j-c-berger

This comment has been minimized.

Copy link

@j-c-berger j-c-berger commented Feb 6, 2020

@sishida, please assign this issue to me as well, thanks!

@elsony

This comment has been minimized.

Copy link
Member

@elsony elsony commented Feb 6, 2020

The remaining iterative dev work is tracked on the PR #2042. Once that is in, the remaining work will be on the IDE side to use the new notificationID field.

@rajivnathan

This comment has been minimized.

Copy link
Contributor Author

@rajivnathan rajivnathan commented Feb 6, 2020

@j-c-berger @sishida can we determine what the link for the new doc will be now so that we can make the change in the code? The doc doesn't need to be done, just a consensus on what the link is going to be.

@malincoln

This comment has been minimized.

Copy link

@malincoln malincoln commented Feb 7, 2020

The remaining iterative dev work is tracked on the PR #2042. Once that is in, the remaining work will be on the IDE side to use the new notificationID field.

@eharris369 @tetchel cc: @jopit
just making sure you're aware of the IDE changes required.

@j-c-berger

This comment has been minimized.

Copy link

@j-c-berger j-c-berger commented Feb 7, 2020

@ssh24 and @rajivnathan, I propose the link for the new doc be: https://www.eclipse.org/codewind/troubleshooting.html#projects-stuck-in-starting-or-stopped-state

We can update this section of the troubleshooting to include instructions to help users if their project is:

  1. stuck in starting state
  2. they need to stop notifications about my project not running
@tetchel

This comment has been minimized.

Copy link
Contributor

@tetchel tetchel commented Feb 7, 2020

The new button title looks way too long, I liked the more concise one a lot better. We could even just remove the word "information"
image

@j-c-berger

This comment has been minimized.

Copy link

@j-c-berger j-c-berger commented Feb 7, 2020

@tetchel, or maybe even application troubleshooting or status troubleshooting

@lentheivendra

This comment has been minimized.

Copy link
Contributor

@lentheivendra lentheivendra commented Feb 7, 2020

@tetchel

This comment has been minimized.

Copy link
Contributor

@tetchel tetchel commented Feb 7, 2020

@eharris369

This comment has been minimized.

Copy link

@eharris369 eharris369 commented Feb 10, 2020

@rajivnathan

This comment has been minimized.

Copy link
Contributor Author

@rajivnathan rajivnathan commented Feb 11, 2020

For 0.9.0 we'll make a change to the existing doc https://www.eclipse.org/codewind/mdteclipsetroubleshooting.html#application-stuck-in-starting-state
PR for that change: eclipse/codewind-docs#353

Post 0.9.0 we'll create a new doc with more general information, see #2117

@tetchel

This comment has been minimized.

Copy link
Contributor

@tetchel tetchel commented Feb 14, 2020

it looks like all the 0.9 work is done so with #2117 opened can we close this one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
9 participants
You can’t perform that action at this time.