Branch: refs/heads/master
Home:
https://github.com/hawkular/hawkular-metrics
Commit: 8bf12d6b8417dbe115d633b14bc31c057d9cf1a6
https://github.com/hawkular/hawkular-metrics/commit/8bf12d6b8417dbe115d63...
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: 2016-04-29 (Fri, 29 Apr 2016)
Changed paths:
M
api/metrics-api-jaxrs/src/main/java/org/hawkular/metrics/api/jaxrs/MetricsServiceLifecycle.java
M api/metrics-api-util/pom.xml
A
api/metrics-api-util/src/main/java/org/hawkular/metrics/api/jaxrs/util/MetricRegistryProvider.java
M containers/hawkular-metrics-openshift-integration/pom.xml
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/Authenticator.java
R
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/BasicAuthentication.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/BasicAuthenticator.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/DisabledAuthenticator.java
R
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenShiftAuthenticationFilter.java
R
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenShiftTokenAuthentication.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenshiftAuthHandler.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenshiftAuthServletExtension.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/TokenAuthenticator.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/Utils.java
A
containers/hawkular-metrics-openshift-integration/src/main/resources/META-INF/services/io.undertow.servlet.ServletExtension
R
containers/hawkular-metrics-openshift-integration/src/main/resources/META-INF/web-fragment.xml
M containers/metrics-api-jaxrs-openshift/pom.xml
A
containers/metrics-api-jaxrs-openshift/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
M integration-tests/load-tests/README.adoc
M
integration-tests/load-tests/src/test/scala/org/hawkular/metrics/loadtest/MetricsSimulation.scala
Log Message:
-----------
HWKMETRICS-330 Update filter to be async
A bit of context first. Hawkular Metrics is a reactive application and
calls to a blocking API should be avoided as much as possible.
The Openshift integration library had a servlet filter mechanism to
authenticate users. The filter code used the JDK's HTTP client to call
Kubernetes' master server. While this was alright has a first
implementation (in order to provide the feature as quickly as possible),
it is a serious limitation to reach our performance goals.
There were two problems to tackle:
1. choose an async HTTP client API
2. make the filter code asynchronous
For the HTTP client, I considered a few options: Netty, vert.x,
Undertow. I picked undertow because it does not add a new dependency,
we can reuse the io threads (instead of creating yet another thread
pool). The downside is that the Undertow client API is low-level (no pool
implementation) and not well documented.
For the filter code, my first try was to use servlet async API from the
filter. But RestEasy throws an exception because it wants start the
async exchange itself. I wrote to the resteasy-user list but got no
reply. And even if we had a fix, we would have to wait for a new
RestEasy and Wildfly release. So I wrote an Undertow extension which is
executed in io threads *before* the servlet handler is involved.
The implementation consists in pooling Undertow HTTP client connections and
filering the Metrics client requests (only dispatch to the servlet
handler if the user is authenticated).
While working on the implementation I had to find a way to share the
MetricsRegistry between the webapp code and the authenticator code. So
there's a MetricsRegistry provider class in core-util now.
Also, I enhanced the Gatling scenario file to support multiple
authentication mechanisms (none, Hawkular integration, Openshift
htpasswd file, Openshift token). I took the opportunity to document the
scenario options in the project README.
Note that performance enhancements will be more visible in environments
where Kubernetes reponse time is minimal.
Commit: 33da066d5277c6d9724ccfe9155d542432c451c6
https://github.com/hawkular/hawkular-metrics/commit/33da066d5277c6d9724cc...
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: 2016-04-29 (Fri, 29 Apr 2016)
Changed paths:
M
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenshiftAuthHandler.java
Log Message:
-----------
Fix static resources access
Commit: c6358260fe640a46bef7828f4949f8db1d0d0df8
https://github.com/hawkular/hawkular-metrics/commit/c6358260fe640a46bef78...
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: 2016-04-29 (Fri, 29 Apr 2016)
Changed paths:
M
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/BasicAuthenticator.java
R
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/DisabledAuthenticator.java
M
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenshiftAuthHandler.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/SecurityOption.java
M
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/TokenAuthenticator.java
Log Message:
-----------
Fix authentication selection
Multiple authenticators can be active at the same time
Commit: d351f66518071d2f94a779c58b98b13b6b03f964
https://github.com/hawkular/hawkular-metrics/commit/d351f66518071d2f94a77...
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: 2016-04-29 (Fri, 29 Apr 2016)
Changed paths:
M
api/metrics-api-jaxrs/src/main/java/org/hawkular/metrics/api/jaxrs/MetricsServiceLifecycle.java
M
api/metrics-api-jaxrs/src/main/java/org/hawkular/metrics/api/jaxrs/config/ConfigurationKey.java
Log Message:
-----------
Add a config flag to disable metrics jmx reporting
Disables reporting for both the driver's registry and our registry
Commit: 0a1aace72fc749ee6f8c4496d40dfebda18ddfb2
https://github.com/hawkular/hawkular-metrics/commit/0a1aace72fc749ee6f8c4...
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: 2016-04-29 (Fri, 29 Apr 2016)
Changed paths:
M
api/metrics-api-jaxrs/src/main/java/org/hawkular/metrics/api/jaxrs/MetricsServiceLifecycle.java
M
api/metrics-api-jaxrs/src/main/java/org/hawkular/metrics/api/jaxrs/config/ConfigurationKey.java
M api/metrics-api-util/pom.xml
A
api/metrics-api-util/src/main/java/org/hawkular/metrics/api/jaxrs/util/MetricRegistryProvider.java
M containers/hawkular-metrics-openshift-integration/pom.xml
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/Authenticator.java
R
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/BasicAuthentication.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/BasicAuthenticator.java
R
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenShiftAuthenticationFilter.java
R
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenShiftTokenAuthentication.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenshiftAuthHandler.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/OpenshiftAuthServletExtension.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/SecurityOption.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/TokenAuthenticator.java
A
containers/hawkular-metrics-openshift-integration/src/main/java/org/hawkular/openshift/auth/Utils.java
A
containers/hawkular-metrics-openshift-integration/src/main/resources/META-INF/services/io.undertow.servlet.ServletExtension
R
containers/hawkular-metrics-openshift-integration/src/main/resources/META-INF/web-fragment.xml
M containers/metrics-api-jaxrs-openshift/pom.xml
A
containers/metrics-api-jaxrs-openshift/src/main/webapp/WEB-INF/jboss-deployment-structure.xml
M integration-tests/load-tests/README.adoc
M
integration-tests/load-tests/src/test/scala/org/hawkular/metrics/loadtest/MetricsSimulation.scala
Log Message:
-----------
Merge pull request #481 from tsegismont/jira/HWKMETRICS-330
HWKMETRICS-330 Update filter to be async
Compare:
https://github.com/hawkular/hawkular-metrics/compare/0b654ab5b2c3...0a1aa...