From b359ff3096d2319ea4e9aecebd647f71932b2165 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Mon, 23 Oct 2017 18:11:12 +0000 Subject: [PATCH] Sync docs from master to gh-pages --- multi/multi__router_and_filter_zuul.html | 9 ++++---- multi/multi_netflix-metrics.html | 2 +- multi/multi_spring-cloud-netflix.html | 2 +- single/spring-cloud-netflix.html | 13 ++++++------ spring-cloud-netflix.xml | 27 +++++++++++++++++++----- 5 files changed, 36 insertions(+), 17 deletions(-) diff --git a/multi/multi__router_and_filter_zuul.html b/multi/multi__router_and_filter_zuul.html index c694852c9..9301dcd2f 100644 --- a/multi/multi__router_and_filter_zuul.html +++ b/multi/multi__router_and_filter_zuul.html @@ -173,9 +173,8 @@ classpath, and otherwise they are initialized to a set of well-known "security" headers (e.g. involving caching) as specified by Spring Security. The assumption in this case is that the downstream services might add these headers too, and we want the values from the proxy. -To not discard these well known security headers in case Spring Security is on the classpath you can set zuul.ignoreSecurityHeaders to false. This can be useful if you disabled the HTTP Security response headers in Spring Security and want the values provided by downstream services

9.6 The Routes Endpoint

If you are using @EnableZuulProxy with tha Spring Boot Actuator you -will enable (by default) an additional endpoint, available via HTTP as -/routes. A GET to this endpoint will return a list of the mapped +To not discard these well known security headers in case Spring Security is on the classpath you can set zuul.ignoreSecurityHeaders to false. This can be useful if you disabled the HTTP Security response headers in Spring Security and want the values provided by downstream services

9.6 Management Endpoints

If you are using @EnableZuulProxy with the Spring Boot Actuator you +will enable (by default) two additional endpoints:

  • Routes
  • Filters

9.6.1 Routes Endpoint

A GET to the routes endpoint at /routes will return a list of the mapped routes:

GET /routes. 

{
   /stores/**: "http://localhost:8081"
@@ -198,7 +197,9 @@ string to /routes. This will produce the following
 case there have been changes in the service catalog).  You can disable
 this endpoint by setting endpoints.routes.enabled to false.

[Note]Note

the routes should respond automatically to changes in the service catalog, but the POST to /routes is a way to force the change -to happen immediately.

9.7 Strangulation Patterns and Local Forwards

A common pattern when migrating an existing application or API is to +to happen immediately.

9.6.2 Filters Endpoint

A GET to the filters endpoint at /filters will return a map of Zuul +filters by type. For each filter type in the map, you will find a list +of all the filters of that type, along with their details.

9.7 Strangulation Patterns and Local Forwards

A common pattern when migrating an existing application or API is to "strangle" old endpoints, slowly replacing them with different implementations. The Zuul proxy is a useful tool for this because you can use it to handle all traffic from clients of the old endpoints, diff --git a/multi/multi_netflix-metrics.html b/multi/multi_netflix-metrics.html index 465ea7789..75025af85 100644 --- a/multi/multi_netflix-metrics.html +++ b/multi/multi_netflix-metrics.html @@ -24,7 +24,7 @@ restTemplate.getForObject(</dependency>

In Spectator parlance, a meter is a named, typed, and tagged configuration and a metric represents the value of a given meter at a point in time. Spectator meters are created and controlled by a registry, which currently has several different implementations. Spectator provides 4 meter types: counter, timer, gauge, and distribution summary.

Spring Cloud Spectator integration configures an injectable com.netflix.spectator.api.Registry instance for you. Specifically, it configures a ServoRegistry instance in order to unify the collection of REST metrics and the exporting of metrics to the Atlas backend under a single Servo API. Practically, this means that your code may use a mixture of Servo monitors and Spectator meters and both will be scooped up by Spring Boot Actuator MetricReader instances and both will be shipped to the Atlas backend.

12.3.1 Spectator Counter

A counter is used to measure the rate at which some event is occurring.

// create a counter with a name and a set of tags
 Counter counter = registry.counter("counterName", "tagKey1", "tagValue1", ...);
 counter.increment(); // increment when an event occurs
-counter.increment(10); // increment by a discrete amount

The counter records a single time-normalized statistic.

12.3.2 Spectator Timer

A timer is used to measure how long some event is taking. Spring Cloud automatically records timers for Spring MVC requests and conditionally RestTemplate requests, which can later be used to create dashboards for request related metrics like latency:

Figure 12.1. Request Latency

RequestLatency

// create a timer with a name and a set of tags
+counter.increment(10); // increment by a discrete amount

The counter records a single time-normalized statistic.

12.3.2 Spectator Timer

A timer is used to measure how long some event is taking. Spring Cloud automatically records timers for Spring MVC requests and conditionally RestTemplate requests, which can later be used to create dashboards for request related metrics like latency:

Figure 12.1. Request Latency

RequestLatency

// create a timer with a name and a set of tags
 Timer timer = registry.timer("timerName", "tagKey1", "tagValue1", ...);
 
 // execute an operation and time it at the same time
diff --git a/multi/multi_spring-cloud-netflix.html b/multi/multi_spring-cloud-netflix.html
index 7636cb2b2..472b68af4 100644
--- a/multi/multi_spring-cloud-netflix.html
+++ b/multi/multi_spring-cloud-netflix.html
@@ -1,3 +1,3 @@
 
       
-   Spring Cloud Netflix

Spring Cloud Netflix


Table of Contents

1. Service Discovery: Eureka Clients
1.1. How to Include Eureka Client
1.2. Registering with Eureka
1.3. Authenticating with the Eureka Server
1.4. Status Page and Health Indicator
1.5. Registering a Secure Application
1.6. Eureka’s Health Checks
1.7. Eureka Metadata for Instances and Clients
1.7.1. Using Eureka on Cloudfoundry
1.7.2. Using Eureka on AWS
1.7.3. Changing the Eureka Instance ID
1.8. Using the EurekaClient
1.8.1. EurekaClient without Jersey
1.9. Alternatives to the native Netflix EurekaClient
1.10. Why is it so Slow to Register a Service?
1.11. Zones
2. Service Discovery: Eureka Server
2.1. How to Include Eureka Server
2.2. How to Run a Eureka Server
2.3. High Availability, Zones and Regions
2.4. Standalone Mode
2.5. Peer Awareness
2.6. Prefer IP Address
3. Circuit Breaker: Hystrix Clients
3.1. How to Include Hystrix
3.2. Propagating the Security Context or using Spring Scopes
3.3. Health Indicator
3.4. Hystrix Metrics Stream
4. Circuit Breaker: Hystrix Dashboard
5. Hystrix Timeouts And Ribbon Clients
5.1. How to Include Hystrix Dashboard
5.2. Turbine
5.3. Turbine Stream
6. Client Side Load Balancer: Ribbon
6.1. How to Include Ribbon
6.2. Customizing the Ribbon Client
6.3. Customizing default for all Ribbon Clients
6.4. Customizing the Ribbon Client using properties
6.5. Using Ribbon with Eureka
6.6. Example: How to Use Ribbon Without Eureka
6.7. Example: Disable Eureka use in Ribbon
6.8. Using the Ribbon API Directly
6.9. Caching of Ribbon Configuration
6.10. How to Configure Hystrix thread pools
7. Declarative REST Client: Feign
7.1. How to Include Feign
7.2. Overriding Feign Defaults
7.3. Creating Feign Clients Manually
7.4. Feign Hystrix Support
7.5. Feign Hystrix Fallbacks
7.6. Feign and @Primary
7.7. Feign Inheritance Support
7.8. Feign request/response compression
7.9. Feign logging
8. External Configuration: Archaius
9. Router and Filter: Zuul
9.1. How to Include Zuul
9.2. Embedded Zuul Reverse Proxy
9.3. Zuul Http Client
9.4. Cookies and Sensitive Headers
9.5. Ignored Headers
9.6. The Routes Endpoint
9.7. Strangulation Patterns and Local Forwards
9.8. Uploading Files through Zuul
9.9. Query String Encoding
9.10. Plain Embedded Zuul
9.11. Disable Zuul Filters
9.12. Providing Hystrix Fallbacks For Routes
9.13. Rewriting Location header
9.14. Zuul Developer Guide
9.14.1. The Zuul Servlet
9.14.2. Zuul RequestContext
9.14.3. @EnableZuulProxy vs. @EnableZuulServer
9.14.4. @EnableZuulServer Filters
9.14.5. @EnableZuulProxy Filters
9.14.6. Custom Zuul Filter examples
9.14.7. How to Write a Pre Filter
9.14.8. How to Write a Route Filter
9.14.9. How to Write a Post Filter
9.14.10. How Zuul Errors Work
9.14.11. Zuul Eager Application Context Loading
10. Polyglot support with Sidecar
11. RxJava with Spring MVC
12. Metrics: Spectator, Servo, and Atlas
12.1. Dimensional vs. Hierarchical Metrics
12.2. Default Metrics Collection
12.3. Metrics Collection: Spectator
12.3.1. Spectator Counter
12.3.2. Spectator Timer
12.3.3. Spectator Gauge
12.3.4. Spectator Distribution Summaries
12.4. Metrics Collection: Servo
12.4.1. Creating Servo Monitors
12.5. Metrics Backend: Atlas
12.5.1. Global tags
12.5.2. Using Atlas
12.6. Retrying Failed Requests
12.6.1. Configuration
12.6.2. Zuul
13. HTTP Clients
\ No newline at end of file + Spring Cloud Netflix

Spring Cloud Netflix


Table of Contents

1. Service Discovery: Eureka Clients
1.1. How to Include Eureka Client
1.2. Registering with Eureka
1.3. Authenticating with the Eureka Server
1.4. Status Page and Health Indicator
1.5. Registering a Secure Application
1.6. Eureka’s Health Checks
1.7. Eureka Metadata for Instances and Clients
1.7.1. Using Eureka on Cloudfoundry
1.7.2. Using Eureka on AWS
1.7.3. Changing the Eureka Instance ID
1.8. Using the EurekaClient
1.8.1. EurekaClient without Jersey
1.9. Alternatives to the native Netflix EurekaClient
1.10. Why is it so Slow to Register a Service?
1.11. Zones
2. Service Discovery: Eureka Server
2.1. How to Include Eureka Server
2.2. How to Run a Eureka Server
2.3. High Availability, Zones and Regions
2.4. Standalone Mode
2.5. Peer Awareness
2.6. Prefer IP Address
3. Circuit Breaker: Hystrix Clients
3.1. How to Include Hystrix
3.2. Propagating the Security Context or using Spring Scopes
3.3. Health Indicator
3.4. Hystrix Metrics Stream
4. Circuit Breaker: Hystrix Dashboard
5. Hystrix Timeouts And Ribbon Clients
5.1. How to Include Hystrix Dashboard
5.2. Turbine
5.3. Turbine Stream
6. Client Side Load Balancer: Ribbon
6.1. How to Include Ribbon
6.2. Customizing the Ribbon Client
6.3. Customizing default for all Ribbon Clients
6.4. Customizing the Ribbon Client using properties
6.5. Using Ribbon with Eureka
6.6. Example: How to Use Ribbon Without Eureka
6.7. Example: Disable Eureka use in Ribbon
6.8. Using the Ribbon API Directly
6.9. Caching of Ribbon Configuration
6.10. How to Configure Hystrix thread pools
7. Declarative REST Client: Feign
7.1. How to Include Feign
7.2. Overriding Feign Defaults
7.3. Creating Feign Clients Manually
7.4. Feign Hystrix Support
7.5. Feign Hystrix Fallbacks
7.6. Feign and @Primary
7.7. Feign Inheritance Support
7.8. Feign request/response compression
7.9. Feign logging
8. External Configuration: Archaius
9. Router and Filter: Zuul
9.1. How to Include Zuul
9.2. Embedded Zuul Reverse Proxy
9.3. Zuul Http Client
9.4. Cookies and Sensitive Headers
9.5. Ignored Headers
9.6. Management Endpoints
9.6.1. Routes Endpoint
9.6.2. Filters Endpoint
9.7. Strangulation Patterns and Local Forwards
9.8. Uploading Files through Zuul
9.9. Query String Encoding
9.10. Plain Embedded Zuul
9.11. Disable Zuul Filters
9.12. Providing Hystrix Fallbacks For Routes
9.13. Rewriting Location header
9.14. Zuul Developer Guide
9.14.1. The Zuul Servlet
9.14.2. Zuul RequestContext
9.14.3. @EnableZuulProxy vs. @EnableZuulServer
9.14.4. @EnableZuulServer Filters
9.14.5. @EnableZuulProxy Filters
9.14.6. Custom Zuul Filter examples
9.14.7. How to Write a Pre Filter
9.14.8. How to Write a Route Filter
9.14.9. How to Write a Post Filter
9.14.10. How Zuul Errors Work
9.14.11. Zuul Eager Application Context Loading
10. Polyglot support with Sidecar
11. RxJava with Spring MVC
12. Metrics: Spectator, Servo, and Atlas
12.1. Dimensional vs. Hierarchical Metrics
12.2. Default Metrics Collection
12.3. Metrics Collection: Spectator
12.3.1. Spectator Counter
12.3.2. Spectator Timer
12.3.3. Spectator Gauge
12.3.4. Spectator Distribution Summaries
12.4. Metrics Collection: Servo
12.4.1. Creating Servo Monitors
12.5. Metrics Backend: Atlas
12.5.1. Global tags
12.5.2. Using Atlas
12.6. Retrying Failed Requests
12.6.1. Configuration
12.6.2. Zuul
13. HTTP Clients
\ No newline at end of file diff --git a/single/spring-cloud-netflix.html b/single/spring-cloud-netflix.html index c475a1608..6b3bce630 100644 --- a/single/spring-cloud-netflix.html +++ b/single/spring-cloud-netflix.html @@ -1,6 +1,6 @@ - Spring Cloud Netflix

Spring Cloud Netflix


Table of Contents

1. Service Discovery: Eureka Clients
1.1. How to Include Eureka Client
1.2. Registering with Eureka
1.3. Authenticating with the Eureka Server
1.4. Status Page and Health Indicator
1.5. Registering a Secure Application
1.6. Eureka’s Health Checks
1.7. Eureka Metadata for Instances and Clients
1.7.1. Using Eureka on Cloudfoundry
1.7.2. Using Eureka on AWS
1.7.3. Changing the Eureka Instance ID
1.8. Using the EurekaClient
1.8.1. EurekaClient without Jersey
1.9. Alternatives to the native Netflix EurekaClient
1.10. Why is it so Slow to Register a Service?
1.11. Zones
2. Service Discovery: Eureka Server
2.1. How to Include Eureka Server
2.2. How to Run a Eureka Server
2.3. High Availability, Zones and Regions
2.4. Standalone Mode
2.5. Peer Awareness
2.6. Prefer IP Address
3. Circuit Breaker: Hystrix Clients
3.1. How to Include Hystrix
3.2. Propagating the Security Context or using Spring Scopes
3.3. Health Indicator
3.4. Hystrix Metrics Stream
4. Circuit Breaker: Hystrix Dashboard
5. Hystrix Timeouts And Ribbon Clients
5.1. How to Include Hystrix Dashboard
5.2. Turbine
5.3. Turbine Stream
6. Client Side Load Balancer: Ribbon
6.1. How to Include Ribbon
6.2. Customizing the Ribbon Client
6.3. Customizing default for all Ribbon Clients
6.4. Customizing the Ribbon Client using properties
6.5. Using Ribbon with Eureka
6.6. Example: How to Use Ribbon Without Eureka
6.7. Example: Disable Eureka use in Ribbon
6.8. Using the Ribbon API Directly
6.9. Caching of Ribbon Configuration
6.10. How to Configure Hystrix thread pools
7. Declarative REST Client: Feign
7.1. How to Include Feign
7.2. Overriding Feign Defaults
7.3. Creating Feign Clients Manually
7.4. Feign Hystrix Support
7.5. Feign Hystrix Fallbacks
7.6. Feign and @Primary
7.7. Feign Inheritance Support
7.8. Feign request/response compression
7.9. Feign logging
8. External Configuration: Archaius
9. Router and Filter: Zuul
9.1. How to Include Zuul
9.2. Embedded Zuul Reverse Proxy
9.3. Zuul Http Client
9.4. Cookies and Sensitive Headers
9.5. Ignored Headers
9.6. The Routes Endpoint
9.7. Strangulation Patterns and Local Forwards
9.8. Uploading Files through Zuul
9.9. Query String Encoding
9.10. Plain Embedded Zuul
9.11. Disable Zuul Filters
9.12. Providing Hystrix Fallbacks For Routes
9.13. Rewriting Location header
9.14. Zuul Developer Guide
9.14.1. The Zuul Servlet
9.14.2. Zuul RequestContext
9.14.3. @EnableZuulProxy vs. @EnableZuulServer
9.14.4. @EnableZuulServer Filters
9.14.5. @EnableZuulProxy Filters
9.14.6. Custom Zuul Filter examples
9.14.7. How to Write a Pre Filter
9.14.8. How to Write a Route Filter
9.14.9. How to Write a Post Filter
9.14.10. How Zuul Errors Work
9.14.11. Zuul Eager Application Context Loading
10. Polyglot support with Sidecar
11. RxJava with Spring MVC
12. Metrics: Spectator, Servo, and Atlas
12.1. Dimensional vs. Hierarchical Metrics
12.2. Default Metrics Collection
12.3. Metrics Collection: Spectator
12.3.1. Spectator Counter
12.3.2. Spectator Timer
12.3.3. Spectator Gauge
12.3.4. Spectator Distribution Summaries
12.4. Metrics Collection: Servo
12.4.1. Creating Servo Monitors
12.5. Metrics Backend: Atlas
12.5.1. Global tags
12.5.2. Using Atlas
12.6. Retrying Failed Requests
12.6.1. Configuration
12.6.2. Zuul
13. HTTP Clients

1.4.0.BUILD-SNAPSHOT

This project provides Netflix OSS integrations for Spring Boot apps through autoconfiguration + Spring Cloud Netflix

Spring Cloud Netflix


Table of Contents

1. Service Discovery: Eureka Clients
1.1. How to Include Eureka Client
1.2. Registering with Eureka
1.3. Authenticating with the Eureka Server
1.4. Status Page and Health Indicator
1.5. Registering a Secure Application
1.6. Eureka’s Health Checks
1.7. Eureka Metadata for Instances and Clients
1.7.1. Using Eureka on Cloudfoundry
1.7.2. Using Eureka on AWS
1.7.3. Changing the Eureka Instance ID
1.8. Using the EurekaClient
1.8.1. EurekaClient without Jersey
1.9. Alternatives to the native Netflix EurekaClient
1.10. Why is it so Slow to Register a Service?
1.11. Zones
2. Service Discovery: Eureka Server
2.1. How to Include Eureka Server
2.2. How to Run a Eureka Server
2.3. High Availability, Zones and Regions
2.4. Standalone Mode
2.5. Peer Awareness
2.6. Prefer IP Address
3. Circuit Breaker: Hystrix Clients
3.1. How to Include Hystrix
3.2. Propagating the Security Context or using Spring Scopes
3.3. Health Indicator
3.4. Hystrix Metrics Stream
4. Circuit Breaker: Hystrix Dashboard
5. Hystrix Timeouts And Ribbon Clients
5.1. How to Include Hystrix Dashboard
5.2. Turbine
5.3. Turbine Stream
6. Client Side Load Balancer: Ribbon
6.1. How to Include Ribbon
6.2. Customizing the Ribbon Client
6.3. Customizing default for all Ribbon Clients
6.4. Customizing the Ribbon Client using properties
6.5. Using Ribbon with Eureka
6.6. Example: How to Use Ribbon Without Eureka
6.7. Example: Disable Eureka use in Ribbon
6.8. Using the Ribbon API Directly
6.9. Caching of Ribbon Configuration
6.10. How to Configure Hystrix thread pools
7. Declarative REST Client: Feign
7.1. How to Include Feign
7.2. Overriding Feign Defaults
7.3. Creating Feign Clients Manually
7.4. Feign Hystrix Support
7.5. Feign Hystrix Fallbacks
7.6. Feign and @Primary
7.7. Feign Inheritance Support
7.8. Feign request/response compression
7.9. Feign logging
8. External Configuration: Archaius
9. Router and Filter: Zuul
9.1. How to Include Zuul
9.2. Embedded Zuul Reverse Proxy
9.3. Zuul Http Client
9.4. Cookies and Sensitive Headers
9.5. Ignored Headers
9.6. Management Endpoints
9.6.1. Routes Endpoint
9.6.2. Filters Endpoint
9.7. Strangulation Patterns and Local Forwards
9.8. Uploading Files through Zuul
9.9. Query String Encoding
9.10. Plain Embedded Zuul
9.11. Disable Zuul Filters
9.12. Providing Hystrix Fallbacks For Routes
9.13. Rewriting Location header
9.14. Zuul Developer Guide
9.14.1. The Zuul Servlet
9.14.2. Zuul RequestContext
9.14.3. @EnableZuulProxy vs. @EnableZuulServer
9.14.4. @EnableZuulServer Filters
9.14.5. @EnableZuulProxy Filters
9.14.6. Custom Zuul Filter examples
9.14.7. How to Write a Pre Filter
9.14.8. How to Write a Route Filter
9.14.9. How to Write a Post Filter
9.14.10. How Zuul Errors Work
9.14.11. Zuul Eager Application Context Loading
10. Polyglot support with Sidecar
11. RxJava with Spring MVC
12. Metrics: Spectator, Servo, and Atlas
12.1. Dimensional vs. Hierarchical Metrics
12.2. Default Metrics Collection
12.3. Metrics Collection: Spectator
12.3.1. Spectator Counter
12.3.2. Spectator Timer
12.3.3. Spectator Gauge
12.3.4. Spectator Distribution Summaries
12.4. Metrics Collection: Servo
12.4.1. Creating Servo Monitors
12.5. Metrics Backend: Atlas
12.5.1. Global tags
12.5.2. Using Atlas
12.6. Retrying Failed Requests
12.6.1. Configuration
12.6.2. Zuul
13. HTTP Clients

1.4.0.BUILD-SNAPSHOT

This project provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms. With a few simple annotations you can quickly enable and configure the common patterns inside your application and build large distributed systems with battle-tested Netflix components. The @@ -869,9 +869,8 @@ classpath, and otherwise they are initialized to a set of well-known "security" headers (e.g. involving caching) as specified by Spring Security. The assumption in this case is that the downstream services might add these headers too, and we want the values from the proxy. -To not discard these well known security headers in case Spring Security is on the classpath you can set zuul.ignoreSecurityHeaders to false. This can be useful if you disabled the HTTP Security response headers in Spring Security and want the values provided by downstream services

9.6 The Routes Endpoint

If you are using @EnableZuulProxy with tha Spring Boot Actuator you -will enable (by default) an additional endpoint, available via HTTP as -/routes. A GET to this endpoint will return a list of the mapped +To not discard these well known security headers in case Spring Security is on the classpath you can set zuul.ignoreSecurityHeaders to false. This can be useful if you disabled the HTTP Security response headers in Spring Security and want the values provided by downstream services

9.6 Management Endpoints

If you are using @EnableZuulProxy with the Spring Boot Actuator you +will enable (by default) two additional endpoints:

  • Routes
  • Filters

9.6.1 Routes Endpoint

A GET to the routes endpoint at /routes will return a list of the mapped routes:

GET /routes. 

{
   /stores/**: "http://localhost:8081"
@@ -894,7 +893,9 @@ string to /routes. This will produce the following
 case there have been changes in the service catalog).  You can disable
 this endpoint by setting endpoints.routes.enabled to false.

[Note]Note

the routes should respond automatically to changes in the service catalog, but the POST to /routes is a way to force the change -to happen immediately.

9.7 Strangulation Patterns and Local Forwards

A common pattern when migrating an existing application or API is to +to happen immediately.

9.6.2 Filters Endpoint

A GET to the filters endpoint at /filters will return a map of Zuul +filters by type. For each filter type in the map, you will find a list +of all the filters of that type, along with their details.

9.7 Strangulation Patterns and Local Forwards

A common pattern when migrating an existing application or API is to "strangle" old endpoints, slowly replacing them with different implementations. The Zuul proxy is a useful tool for this because you can use it to handle all traffic from clients of the old endpoints, @@ -1398,7 +1399,7 @@ restTemplate.getForObject(</dependency>

In Spectator parlance, a meter is a named, typed, and tagged configuration and a metric represents the value of a given meter at a point in time. Spectator meters are created and controlled by a registry, which currently has several different implementations. Spectator provides 4 meter types: counter, timer, gauge, and distribution summary.

Spring Cloud Spectator integration configures an injectable com.netflix.spectator.api.Registry instance for you. Specifically, it configures a ServoRegistry instance in order to unify the collection of REST metrics and the exporting of metrics to the Atlas backend under a single Servo API. Practically, this means that your code may use a mixture of Servo monitors and Spectator meters and both will be scooped up by Spring Boot Actuator MetricReader instances and both will be shipped to the Atlas backend.

12.3.1 Spectator Counter

A counter is used to measure the rate at which some event is occurring.

// create a counter with a name and a set of tags
 Counter counter = registry.counter("counterName", "tagKey1", "tagValue1", ...);
 counter.increment(); // increment when an event occurs
-counter.increment(10); // increment by a discrete amount

The counter records a single time-normalized statistic.

12.3.2 Spectator Timer

A timer is used to measure how long some event is taking. Spring Cloud automatically records timers for Spring MVC requests and conditionally RestTemplate requests, which can later be used to create dashboards for request related metrics like latency:

Figure 12.1. Request Latency

RequestLatency

// create a timer with a name and a set of tags
+counter.increment(10); // increment by a discrete amount

The counter records a single time-normalized statistic.

12.3.2 Spectator Timer

A timer is used to measure how long some event is taking. Spring Cloud automatically records timers for Spring MVC requests and conditionally RestTemplate requests, which can later be used to create dashboards for request related metrics like latency:

Figure 12.1. Request Latency

RequestLatency

// create a timer with a name and a set of tags
 Timer timer = registry.timer("timerName", "tagKey1", "tagValue1", ...);
 
 // execute an operation and time it at the same time
diff --git a/spring-cloud-netflix.xml b/spring-cloud-netflix.xml
index 41b477286..42bb867fc 100644
--- a/spring-cloud-netflix.xml
+++ b/spring-cloud-netflix.xml
@@ -1626,11 +1626,21 @@ Security. The assumption in this case is that the downstream services
 might add these headers too, and we want the values from the proxy.
 To not discard these well known security headers in case Spring Security is on the classpath you can set zuul.ignoreSecurityHeaders to false. This can be useful if you disabled the HTTP Security response headers in Spring Security and want the values provided by downstream services
 
-
-The Routes Endpoint -If you are using @EnableZuulProxy with tha Spring Boot Actuator you -will enable (by default) an additional endpoint, available via HTTP as -/routes. A GET to this endpoint will return a list of the mapped +
+Management Endpoints +If you are using @EnableZuulProxy with the Spring Boot Actuator you +will enable (by default) two additional endpoints: + + +Routes + + +Filters + + +
+Routes Endpoint +A GET to the routes endpoint at /routes will return a list of the mapped routes: GET /routes @@ -1668,6 +1678,13 @@ service catalog, but the POST to /routes is a way to force the change to happen immediately.
+
+Filters Endpoint +A GET to the filters endpoint at /filters will return a map of Zuul +filters by type. For each filter type in the map, you will find a list +of all the filters of that type, along with their details. +
+
Strangulation Patterns and Local Forwards A common pattern when migrating an existing application or API is to