You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@druid.apache.org by Jeet Patel <jp...@gmail.com> on 2021/08/26 10:07:10 UTC
Custom Emitter keeps logging CuratorDruidNodeDiscoveryProvider
Hi all,
I'm building a custom emitter where I get the DruidNode and set a @Self annotation to it in my emitter module, shown below:
@Provides
@ManageLifecycle
@Named(EMITTER_TYPE)
public Emitter getEmitter(MyEmitterConfig myEmitterConfig, ObjectMapper mapper, @Self DruidNode druidNode)
{
return new HubbleEmitter(myEmitterConfig, mapper, druidNode);
}
In the main MyEmitter class, I pass the DruidNode in the constructor so that I can use the object as shown below:
public MyEmitter(
MyEmitterConfig myEmitterConfig,
ObjectMapper mapper,
DruidNode druidNode
)
{
this.mapper = mapper;
this.myEmitterConfig = myEmitterConfig;
this.druidNode = druidNode;
this.healthCheck = new DruidHealthCheck(this.myEmitterConfig, this.druidNode.getServiceName(), this.druidNode.getUriToUse().toString(), this.druidNode.getHost());
log.info("Constructed MyEmitter");
}
Now I've created a DruidHealthCheck class, in which I've a method (checkDruidNodeHealth) which calls the /status/selfDiscovered endpoint. The method returns 1 if status == 200 else 0.
Now in the start() method of MyEmitter class, I have following:
@Override
public void start()
{
exec.scheduleAtFixedRate(
healthCheck::checkDruidNodeHealth,
10000,
10000,
TimeUnit.MILLISECONDS
);
}
So every 10 seconds, the /status/selfDiscovered endpoint will be called which will return either 1 or 0.
Now, wherever the executor calls the method `checkDruidNodeHealth` following is printed in service logs after the lifecycle is started:
2021-08-26T09:51:05,109 INFO [main] org.apache.druid.java.util.common.lifecycle.Lifecycle - Successfully started lifecycle [module]
2021-08-26T09:51:14,306 INFO [qtp589489519-126] org.apache.druid.curator.discovery.CuratorDruidNodeDiscoveryProvider - Node[http://localhost:8082] of role[broker] appeared.
2021-08-26T09:51:24,113 INFO [qtp589489519-125] org.apache.druid.curator.discovery.CuratorDruidNodeDiscoveryProvider - Node[http://localhost:8082] of role[broker] appeared.
Can someone please help me with this. Why this is happening? Every scheduled fix rate `CuratorDruidNodeDiscoveryProvider` logs in the service.
Thank you :)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@druid.apache.org
For additional commands, e-mail: dev-help@druid.apache.org
Re: Custom Emitter keeps logging CuratorDruidNodeDiscoveryProvider
Posted by Jeet Patel <jp...@gmail.com>.
Nevermind, I figured it out.
The API /status/selfDiscovered actually executes a process to check if a node has discovered itself or not and logs the information as Node[%s] of role[%s] appeared.
Thank you
On 2021/08/26 10:07:10, Jeet Patel <jp...@gmail.com> wrote:
> Hi all,
>
> I'm building a custom emitter where I get the DruidNode and set a @Self annotation to it in my emitter module, shown below:
>
> @Provides
> @ManageLifecycle
> @Named(EMITTER_TYPE)
> public Emitter getEmitter(MyEmitterConfig myEmitterConfig, ObjectMapper mapper, @Self DruidNode druidNode)
> {
> return new HubbleEmitter(myEmitterConfig, mapper, druidNode);
> }
>
>
> In the main MyEmitter class, I pass the DruidNode in the constructor so that I can use the object as shown below:
>
> public MyEmitter(
> MyEmitterConfig myEmitterConfig,
> ObjectMapper mapper,
> DruidNode druidNode
> )
> {
> this.mapper = mapper;
> this.myEmitterConfig = myEmitterConfig;
> this.druidNode = druidNode;
> this.healthCheck = new DruidHealthCheck(this.myEmitterConfig, this.druidNode.getServiceName(), this.druidNode.getUriToUse().toString(), this.druidNode.getHost());
> log.info("Constructed MyEmitter");
> }
>
> Now I've created a DruidHealthCheck class, in which I've a method (checkDruidNodeHealth) which calls the /status/selfDiscovered endpoint. The method returns 1 if status == 200 else 0.
>
> Now in the start() method of MyEmitter class, I have following:
>
> @Override
> public void start()
> {
> exec.scheduleAtFixedRate(
> healthCheck::checkDruidNodeHealth,
> 10000,
> 10000,
> TimeUnit.MILLISECONDS
> );
> }
>
> So every 10 seconds, the /status/selfDiscovered endpoint will be called which will return either 1 or 0.
>
> Now, wherever the executor calls the method `checkDruidNodeHealth` following is printed in service logs after the lifecycle is started:
>
> 2021-08-26T09:51:05,109 INFO [main] org.apache.druid.java.util.common.lifecycle.Lifecycle - Successfully started lifecycle [module]
> 2021-08-26T09:51:14,306 INFO [qtp589489519-126] org.apache.druid.curator.discovery.CuratorDruidNodeDiscoveryProvider - Node[http://localhost:8082] of role[broker] appeared.
> 2021-08-26T09:51:24,113 INFO [qtp589489519-125] org.apache.druid.curator.discovery.CuratorDruidNodeDiscoveryProvider - Node[http://localhost:8082] of role[broker] appeared.
>
> Can someone please help me with this. Why this is happening? Every scheduled fix rate `CuratorDruidNodeDiscoveryProvider` logs in the service.
>
> Thank you :)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@druid.apache.org
> For additional commands, e-mail: dev-help@druid.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@druid.apache.org
For additional commands, e-mail: dev-help@druid.apache.org