> But doing this straightforwardly may have some concurrent problem,when the
> healthchecker in other worker processes are writing the shared dict(adding
> a target for example),
> how do we handle this problem? Do you have any suggestions?

We should only read the status from the share dict.

So we do not need to care about the concurrent things.

On Thu, Mar 12, 2020 at 11:40 AM liyong <[email protected]> wrote:
>
> Hello YuanSheng,
>
> I also prefer the second way, as I do some analysis about the shared dict
> implemtation in ngx_lua module,scanning the shared dict memory is
> feasible.
>
> But doing this straightforwardly may have some concurrent problem,when the
> healthchecker in other worker processes are writing the shared dict(adding
> a target for example),
> how do we handle this problem? Do you have any suggestions?
>
> On Mon, Mar 2, 2020 at 4:33 PM YuanSheng Wang <[email protected]> wrote:
>
> > I think the second way is better.
> > It's just that we need to study how it is stored in share memory.
> >
> > On Mon, Mar 2, 2020 at 10:47 AM liyong <[email protected]> wrote:
> >
> > > Hello community,
> > >
> > > If I want to know the health status for all probed targets when build an
> > > upstream healthy dashboard, how to effectively fetch or expose the
> > realtime
> > > or near realtime data?
> > >
> > > 1.  `apisix` use the healthcheck status by calling `get_target_status` in
> > > `apisix.balancer.fetch_health_nodes` function at balancer_by_lua phase.
> > we
> > > may add probe here but this is a passively method, when the target does
> > not
> > > be routed, we don't know its status.
> > >
> > > 2. `lua-resty-healthcheck` use `ngx.shared.DICT` entry for each probed
> > > target internal health(healthy, unhealthy, mostly_healthy,
> > > mostly_unhealthy), do we have some way to explore the internal for
> > > `ngx.shared.DICT`
> > >
> > > 3.  Use log collection: when the `lua-resty-healthcheck` lib have changed
> > > the internal state of the target, output a formatted log and we collected
> > > it.
> > >
> > > One more ...
> > >
> >
> >
> > --
> >
> > *MembPhis*
> > My github: https://github.com/membphis
> > Apache APISIX: https://github.com/apache/incubator-apisix
> >



-- 
MembPhis
My github: https://github.com/membphis
Apache APISIX: https://github.com/apache/incubator-apisix

Reply via email to