Skip to content

Add ping service to Dash #1360

Open
Open

Description

@Marc-Andre-Rivet

Some apps can take many minutes to initialize. During this time no progress messages are printed to the logs. Regular progress messages (1 every 10 seconds) should be printed so the app owner can tell what's happening.

https://github.com/plotly/dash-enterprise-docs/issues/561

Activity

  1. added this to the OSS milestone on Aug 10, 2020
  2. Marc-Andre-Rivet commented on Aug 14, 2020

    @Marc-Andre-Rivet
    ContributorAuthor

    From weekly meeting consensus was that having a ping service would be useful in determining if the app is ready - even if it wouldn't help know if the app is hanging. The service would start responding after run_server gets executed.

    @Gzork If you have additional feedback.

  3. changed the title [-][Feature Request] Display progress message while loading long-to-load applications[/-] [+][Feature Request] Add `ping` service to Dash[/+] on Aug 14, 2020
  4. changed the title [-][Feature Request] Add `ping` service to Dash[/-] [+]Add `ping` service to Dash[/+] on Aug 14, 2020
  5. deepstqte commented on Aug 20, 2020

    @deepstqte

    We could use the CHECKS file mechanism in Dash Enterprise to only finish the deployment when a certain endpoint is accessible. The dokku documentation is here (Also documented in Dash Enterprise on /Docs/dash-enterprise/checks).

  6. chriddyp commented on Aug 26, 2020

    @chriddyp
    Member

    We could use the CHECKS file mechanism in Dash Enterprise to only finish the deployment when a certain endpoint is accessible.

    We already use the /_dash-layout endpoint for this. Is there any advantage to using ping instead of /_dash-layout?

  7. chriddyp commented on Aug 26, 2020

    @chriddyp
    Member

    Regular progress messages (1 every 10 seconds) should be printed so the app owner can tell what's happening.

    How will this work architecturally? Some background process that gets kicked off?

  8. deepstqte commented on Aug 26, 2020

    @deepstqte

    Is there any advantage to using ping instead of /_dash-layout?

    @chriddyp If I'm not mistaken /_dash-layout waits for the layout and the callbacks to finish the execution right ? In this case, my understanding is that the code that takes time to finish the execution is the code in publish_data.py which is not tied to a callback. CHECKS could help since it could be customised to what we check for. Though we could add a dummy callback that's tied to the slow code in publish_data.py and make this callback only return something (e.g. True) once the slow code execution has ended.

    I could be misunderstanding or missing something though.

  9. alexcjohnson commented on Aug 26, 2020

    @alexcjohnson
    Collaborator

    The advantage of ping is just avoiding layout generation, in case that’s an expensive function, and keeping the network load small in case the layout has a ton of data in it. Not a huge deal, but then it’s not a big feature to add if it provides some value.

  10. nhoover commented on Feb 13, 2021

    @nhoover

    I agree with the above and it seems like adding ping would also be good for monitoring. Or in my case, to simply implement a keep alive via cron in an environment like free Heroku where your app is taken down after 30 minutes of inactivity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3backlogfeaturesomething new

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions