Hi Claus,
the branch is still [1] and the management parts is in api/management [2].

[1] https://github.com/lburgazzoli/apache-camel/tree/CAMEL-10026-hc
[2] 
https://github.com/lburgazzoli/apache-camel/tree/CAMEL-10026-hc/camel-core/src/main/java/org/apache/camel/api/management

---
Luca Burgazzoli


On Tue, Sep 19, 2017 at 2:26 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> On Tue, Sep 19, 2017 at 2:22 PM, Luca Burgazzoli <lburgazz...@gmail.com> 
> wrote:
>> Hello,
>>
>> I've added some info through JMX, would you mind review it before merging ?
>>
>
> Can you post the link to the branch where those latest code changes are
>
>> Regards,
>> Luca
>>
>>
>> ---
>> Luca Burgazzoli
>>
>>
>> On Fri, Sep 8, 2017 at 4:20 PM, Luca Burgazzoli <lburgazz...@gmail.com> 
>> wrote:
>>> Hello,
>>>
>>> I've just pushed some bits to my fork to cleanup the implementation
>>> and implement some basic checks for routes status. In addition, to
>>> make it suitable to be included in camel 2.20, I've reduced the scope
>>> of the implementation to be almost limited to core/internal health
>>> checks and to provide a good foundation for people to write their own
>>> advanced checks if needed (component checks such as those for undertow
>>> and servicenow has been removed).
>>>
>>> Any feedback is really appreciated.
>>>
>>>
>>> ---
>>> Luca Burgazzoli
>>>
>>>
>>> On Tue, Sep 5, 2017 at 2:25 PM, Luca Burgazzoli <lburgazz...@gmail.com> 
>>> wrote:
>>>> ---
>>>> Luca Burgazzoli
>>>>
>>>>
>>>> On Tue, Sep 5, 2017 at 2:17 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>>>> Hi Luca
>>>>>
>>>>> Looks really good.
>>>>>
>>>>> There is a few typo's and the likes in the source code I looked at.
>>>>> Will try to do a github comment so you can see them as well later, or
>>>>> when the code is merged later.
>>>>>
>>>>> 1)
>>>>> For the doCall implementation when you implement a health check, then
>>>>> what would happen if that methods throws an runtime exception? I think
>>>>> we need to clarify on the javadoc what the contract is, and if an
>>>>> exception would then render the check to be status = DOWN or what?
>>>>>
>>>>
>>>> I'd expect the implementation to wrap it and decide if the service is
>>>> healthy or not so yeah, I'll make it clear.
>>>>
>>>>>
>>>>> 2)
>>>>> I think the spring boot auto configuration prefixes for the health
>>>>> checks for the components such as undertow, servicenow etc should all
>>>>> be under the same prefix as the component itself, eg
>>>>>
>>>>> eg
>>>>> camel.undertow.health.checks[spring-health].interval = 5s
>>>>>
>>>>> should be
>>>>> camel.component.undertow.health.checks[spring-health].interval = 5s
>>>>>
>>>>> Then everything you can configure in the undertow component is with
>>>>> the same prefix and its consistent.
>>>>>
>>>>
>>>> Agree.
>>>>
>>>>>
>>>>> 3)
>>>>> To implement a custom health check and have spring boot auto
>>>>> configuration, then you would have to write that configuration code
>>>>> yourself / manually?
>>>>>
>>>>
>>>> At the moment yes as the layout is not defined but it may be
>>>> eventually auto generated like the starters.
>>>>
>>>>>
>>>>> 4)
>>>>> I wonder in the servicenow health check where you configure the
>>>>> instance id, username etc again, whether you may want to be able to
>>>>> just refer to the existing configuration so you do not repeat
>>>>> yourself?
>>>>>
>>>>> https://github.com/lburgazzoli/apache-camel/blob/CAMEL-10026-hc/examples/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties#L66
>>>>>
>>>>
>>>> Yeah, that was an example non properly cleaned up/explained but by
>>>> default the servicenow reuse component's configuration.
>>>>
>>>>>
>>>>> 5)
>>>>> In this example it is a bit confusing that the comment say the health
>>>>> check is enabled and then the value below is false
>>>>> https://github.com/lburgazzoli/apache-camel/blob/CAMEL-10026-hc/examples/camel-example-spring-boot-health-checks/application/src/main/resources/application.properties#L36
>>>>>
>>>>> 6)
>>>>> ... and as well there is 2 indicator.enabled in that example.
>>>>
>>>> Yeah, it definitively need to be cleaned up.
>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Sep 4, 2017 at 5:16 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>>>>>> Hi Luca
>>>>>>
>>>>>> I will take a closer look tomorrow, I just peaked a bit today.
>>>>>>
>>>>>> Just to be sure, the implementation of the logic that performs the
>>>>>> actual health check is agnostic? i.e. its not tied to must be using
>>>>>> Spring Boot. And that logic is if possible reusing the "ping check"
>>>>>> (i.e. verifier extension).
>>>>>>
>>>>>> So the spring boot health check is currently for making it easier for
>>>>>> end users to configure it via spring boot configuration?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Sep 4, 2017 at 4:01 PM, Luca Burgazzoli <lburgazz...@gmail.com> 
>>>>>> wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> I've been working a little on the Health Check API [1] implementation an
>>>>>>> the code is available in my Apache Camel fork [2]. There is now a a new
>>>>>>> package [3] that defines the following concepts:
>>>>>>>
>>>>>>> - HealthCheck
>>>>>>>
>>>>>>>   this represent an health check and defines the some basic contract i.e
>>>>>>>   the response;
>>>>>>>
>>>>>>> - HealthCheckConfiguration
>>>>>>>
>>>>>>>   this is a basic coonfiguration object that holds some basic settings
>>>>>>>   like the minimum delay between calls, the number of time a service may
>>>>>>>   be reported as unhealthy before meking the check as failed; beside
>>>>>>>   those simple options, is then responsability of the check impl. to
>>>>>>>   eventually implement further limitations;
>>>>>>>
>>>>>>> - HealthCheckRegistry
>>>>>>>
>>>>>>>   this is just a registry, it doesn't have any method to trigger checks
>>>>>>>   and it has intentionally been kept simple as in the future it may be
>>>>>>>   superseeded by an internal camel registry [4];
>>>>>>>
>>>>>>> - HealthCheckRepository
>>>>>>>
>>>>>>>   this is a simple interface to define health check providers and by
>>>>>>>   default there is one that grabs all the checks available in the
>>>>>>>   registry so you can add your own check i.e. istantiating your bean
>>>>>>>   in spring/spring-boot; components can provide theirs own repository.
>>>>>>>
>>>>>>> - HealthCheckService
>>>>>>>
>>>>>>>   this is a simple service that runs in the background and invokes the
>>>>>>>   checks according to a schedule.
>>>>>>>
>>>>>>> The default camel context sets-up a default implementation of the health
>>>>>>> check registry which you can override by putting your own implementation
>>>>>>> in the camel registry as usual. Check are not active by default so you
>>>>>>> need to explicit enable/configure them.
>>>>>>>
>>>>>>> The current implementation has a number of limitations:
>>>>>>>
>>>>>>> - it is spring-boot oriented for demostration purpose so you can't
>>>>>>>   access health checks using JMX (but it is planned);
>>>>>>> - it is focused on monitoring the status of external systems so there
>>>>>>>   are a few implementations based on the Component verifier extension:
>>>>>>>
>>>>>>>   1. a ServiceNow instance check to report if an instances is alive
>>>>>>>   2. a simple undertow based http check that issue an http get to an
>>>>>>>      http endpoint
>>>>>>>
>>>>>>>   There is also a simple consul repository that let you to reuse consul
>>>>>>>   checks [5] so i.e. you can have a single check to monitor the status
>>>>>>>   of twitter and reuse it in all your microservices.
>>>>>>>
>>>>>>>   An example can be found in my fork [6]
>>>>>>>
>>>>>>> My next goals are:
>>>>>>>
>>>>>>> 1. define some core checks to monitor the health of the camel context
>>>>>>>    i.e. fail if there is an excessive number of errors, if the latency
>>>>>>>    is too high, etc.
>>>>>>> 2. expose check through JMX.
>>>>>>> 3. use health checks for ServiceCall EIP
>>>>>>> 4. use health checks in Clustering/Superving route controller
>>>>>>>
>>>>>>>
>>>>>>> Any feedback is very welcome,
>>>>>>> Luca
>>>>>>>
>>>>>>>
>>>>>>> [1] https://issues.apache.org/jira/browse/CAMEL-10026
>>>>>>> [2] https://github.com/lburgazzoli/apache-camel/tree/CAMEL-10026-hc
>>>>>>> [3] 
>>>>>>> https://github.com/lburgazzoli/apache-camel/tree/CAMEL-10026-hc/camel-core/src/main/java/org/apache/camel/health
>>>>>>> [4] https://issues.apache.org/jira/browse/CAMEL-10792
>>>>>>> [5] https://www.consul.io/docs/agent/checks.html
>>>>>>> [6] 
>>>>>>> https://github.com/lburgazzoli/apache-camel/tree/CAMEL-10026-hc/examples/camel-example-spring-boot-health-checks
>>>>>>>
>>>>>>>
>>>>>>> ---
>>>>>>> Luca Burgazzoli
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> -----------------
>>>>>> http://davsclaus.com @davsclaus
>>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Claus Ibsen
>>>>> -----------------
>>>>> http://davsclaus.com @davsclaus
>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to