brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sjcorbett <...@git.apache.org>
Subject [GitHub] incubator-brooklyn pull request: Republish request count sensors o...
Date Tue, 15 Dec 2015 14:42:58 GMT
GitHub user sjcorbett opened a pull request:

    https://github.com/apache/incubator-brooklyn/pull/1109

    Republish request count sensors on poll failure

    Entities that use `org.apache.brooklyn.entity.webapp.WebAppServiceMetrics#REQUEST_COUNT`
are configured to republish the existing sensor value when a poll fails.
    
    **Context**
    
    The webapp entities (for Tomcat, JBoss, etc.) publish a request count sensor. `WebAppServiceMethods#connectWebAppServerPolicies(EntityLocal)`
is used by `JavaWebAppSoftwareProcess` (among others) to enrich the sensor into values for
`REQUESTS_PER_SECOND_LAST` and `REQUESTS_PER_SECOND_IN_WINDOW` sensors.
    
    The clustered varieties of these entities (`DynamicWebAppCluster` and co.) enrich the
enriched values into cluster-wide aggregates.
    
    Enrichers are only updated when a value for the source sensor (request count) is published.
    
    If an entity's process fails then the poll for the request count sensor fails and no value
is published. As such, no values for the enriched sensors are published either and their values
must be considered incorrect. This then means that policies act on stale data rather than
the true state of the system.
    
    The change in this pull request configures the handful of entities that use the `REQUEST_COUNT`
sensor to republish the current value when a poll fails. Whether this is an appropriate thing
to do depends on whether you think a sensor's value represents a communique that Brooklyn
has learned something of the recent history of the system being monitored or that it represents
something that was true in the past. (I generally assume the latter since there is no notion
of timeliness when calling `sensors().get(key)`.)
    
    An alternative approach would be to adjust the aggregating enrichers to indicate that
entities whose status is not `RUNNING` should not be considered. The current design of the
aggregating enrichers does not make this as straightforward as the changes in this PR.
    
    Another would be to change `RollingTimeWindowMeanEnricher` to decay values outwith the
sensor event framework.
    
    I think this change is sufficient for the near future - it is much better than the status
quo - and that long term we should choose one of the alternatives (and also that I'm probably
overthinking this).

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/sjcorbett/incubator-brooklyn feature/republish-sensor-on-failure

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-brooklyn/pull/1109.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1109
    
----
commit 110d277924231939d48c36ccc4e4a10e84bfb7d5
Author: Sam Corbett <sam.corbett@cloudsoftcorp.com>
Date:   2015-12-14T16:28:35Z

    Polls for REQUEST_COUNT are configured to republish current val on error

commit b4086998c676bcffa7195ef351694a9a185e61cf
Author: Sam Corbett <sam.corbett@cloudsoftcorp.com>
Date:   2015-12-15T14:39:11Z

    Tidy

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message