Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Real Time Traffic
Visualization with
Vizceral and Hystrix
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Who am I?
Roberto Perez Alcolea
• Mexican
• RedSky Team @ Target
• Groovy Enthusiast
• roberto@perezalcolea.info
• @rpalco...
Traffic
VisualizationRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Hystrix + Turbine + Vizceral
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Hystrix
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Hystrix
Library to help control interactions between distributed services
• Times out slow commands
• Rate limit number of...
Hystrix
...
private static final HystrixObservableCommand.Setter hystrixSetter = HystrixObservableCommand.Setter
.withGroup...
Hystrix
...
private static final HystrixObservableCommand.Setter hystrixSetter = HystrixObservableCommand.Setter
.withGroup...
Hystrix Flow
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Isolation
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Hystrix Command Metrics
{
"type": "HystrixCommand",
"name": "GithubService.findRepositories",
"group": "github-api",
"curre...
Hystrix Command Metrics
{
"type": "HystrixCommand",
"name": "GithubService.findRepositories",
"group": "github-api",
"curre...
Hystrix Command Metrics
{
"type": "HystrixCommand",
"name": "GithubService.findRepositories",
"group": "github-api",
"curre...
Hystrix Command Metrics
{
"type": "HystrixCommand",
"name": "GithubService.findRepositories",
"group": "github-api",
"curre...
Hystrix
DemoRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Hystrix Dashboard
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Turbine
• Aggregates streams of Server-Sent Event (SSE) JSON data into a
single stream
• Clusters
• Instance discovery
Rob...
Turbine (How it works)
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Vizceral
Vizceral is a tool from Netflix to visualize traffic between components
Roberto Perez Alcolea - @rpalcolea - GR8C...
Putting All Together
DemoRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Thank
YouRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
Upcoming SlideShare
Loading in …5
×

of

GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 1 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 2 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 3 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 4 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 5 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 6 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 7 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 8 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 9 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 10 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 11 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 12 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 13 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 14 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 15 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 16 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 17 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 18 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 19 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 20 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 21 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 22 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 23 GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix Slide 24
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0 Likes

Share

Download to read offline

GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix

Download to read offline

Vizceral is a tool from Netflix to visualize traffic between components. This data needs to be fed from somewhere however. Hystrix provides fault tolerance, and a nice stream of all metrics. Turbine aggregates the hystrix streams per cluster.

In this talk we will go through all the steps to use Hystrix in a Groovy app and expose those metrics for Vizceral

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

GR8ConfUS 2017 - Real Time Traffic Visualization with Vizceral and Hystrix

  1. 1. Real Time Traffic Visualization with Vizceral and Hystrix Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  2. 2. Who am I? Roberto Perez Alcolea • Mexican • RedSky Team @ Target • Groovy Enthusiast • roberto@perezalcolea.info • @rpalcolea Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  3. 3. Traffic VisualizationRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  4. 4. Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  5. 5. Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  6. 6. Hystrix + Turbine + Vizceral Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  7. 7. Hystrix Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  8. 8. Hystrix Library to help control interactions between distributed services • Times out slow commands • Rate limit number of concurrent commands • Circuit breaker • Fallback on failures • Real-Time dashboard for visibility • Measurements Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  9. 9. Hystrix ... private static final HystrixObservableCommand.Setter hystrixSetter = HystrixObservableCommand.Setter .withGroupKey(HystrixCommandGroupKey.Factory.asKey("github-service")) .andCommandKey(HystrixCommandKey.Factory.asKey("GithubService.getRepositories")) .andCommandPropertiesDefaults(HystrixCommandProperties.defaultSetter()) ... Observable<Map> call(String language) { return new HystrixObservableCommand<Map>(hystrixSetter) { @Override protected Observable<Map> construct() { return getRepositories(language) } @Override protected Observable<Map> resumeWithFallback() { return Observable.just([:]) } }.toObservable() } Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  10. 10. Hystrix ... private static final HystrixObservableCommand.Setter hystrixSetter = HystrixObservableCommand.Setter .withGroupKey(HystrixCommandGroupKey.Factory.asKey("github-service")) .andCommandKey(HystrixCommandKey.Factory.asKey("GithubService.getRepositories")) .andCommandPropertiesDefaults(HystrixCommandProperties.defaultSetter()) ... Observable<Map> call(String language) { return new HystrixObservableCommand<Map>(hystrixSetter) { @Override protected Observable<Map> construct() { return getRepositories(language) } @Override protected Observable<Map> resumeWithFallback() { return Observable.just([:]) } }.toObservable() } Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  11. 11. Hystrix Flow Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  12. 12. Isolation Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  13. 13. Hystrix Command Metrics { "type": "HystrixCommand", "name": "GithubService.findRepositories", "group": "github-api", "currentTime": 1498355684319, "isCircuitBreakerOpen": false, "errorPercentage": 0, "errorCount": 0, "requestCount": 1, "rollingCountBadRequests": 0, "rollingCountCollapsedRequests": 0, "rollingCountEmit": 1, "rollingCountExceptionsThrown": 0, "rollingCountFailure": 0, "rollingCountFallbackFailure": 0, "rollingCountFallbackRejection": 0, "rollingCountFallbackSuccess": 0, "rollingCountResponsesFromCache": 0, "rollingCountSemaphoreRejected": 0, "rollingCountShortCircuited": 0, "rollingCountSuccess": 1, "rollingCountThreadPoolRejected": 0, "rollingCountTimeout": 0, "currentConcurrentExecutionCount": 0, "rollingMaxConcurrentExecutionCount": 1, "latencyExecute_mean": 0, "latencyExecute": { "99": 0, }, "latencyTotal_mean": 0, "latencyTotal": { "99": 0, }, } Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  14. 14. Hystrix Command Metrics { "type": "HystrixCommand", "name": "GithubService.findRepositories", "group": "github-api", "currentTime": 1498355684319, "isCircuitBreakerOpen": false, "errorPercentage": 0, "errorCount": 0, "requestCount": 1, "rollingCountBadRequests": 0, "rollingCountCollapsedRequests": 0, "rollingCountEmit": 1, "rollingCountExceptionsThrown": 0, "rollingCountFailure": 0, "rollingCountFallbackFailure": 0, "rollingCountFallbackRejection": 0, "rollingCountFallbackSuccess": 0, "rollingCountResponsesFromCache": 0, "rollingCountSemaphoreRejected": 0, "rollingCountShortCircuited": 0, "rollingCountSuccess": 1, "rollingCountThreadPoolRejected": 0, "rollingCountTimeout": 0, "currentConcurrentExecutionCount": 0, "rollingMaxConcurrentExecutionCount": 1, "latencyExecute_mean": 0, "latencyExecute": { "99": 0, }, "latencyTotal_mean": 0, "latencyTotal": { "99": 0, }, } Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  15. 15. Hystrix Command Metrics { "type": "HystrixCommand", "name": "GithubService.findRepositories", "group": "github-api", "currentTime": 1498355684319, "isCircuitBreakerOpen": false, "errorPercentage": 0, "errorCount": 0, "requestCount": 1, "rollingCountBadRequests": 0, "rollingCountCollapsedRequests": 0, "rollingCountEmit": 1, "rollingCountExceptionsThrown": 0, "rollingCountFailure": 0, "rollingCountFallbackFailure": 0, "rollingCountFallbackRejection": 0, "rollingCountFallbackSuccess": 0, "rollingCountResponsesFromCache": 0, "rollingCountSemaphoreRejected": 0, "rollingCountShortCircuited": 0, "rollingCountSuccess": 1, "rollingCountThreadPoolRejected": 0, "rollingCountTimeout": 0, "currentConcurrentExecutionCount": 0, "rollingMaxConcurrentExecutionCount": 1, "latencyExecute_mean": 0, "latencyExecute": { "99": 0, }, "latencyTotal_mean": 0, "latencyTotal": { "99": 0, }, } Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  16. 16. Hystrix Command Metrics { "type": "HystrixCommand", "name": "GithubService.findRepositories", "group": "github-api", "currentTime": 1498355684319, "isCircuitBreakerOpen": false, "errorPercentage": 0, "errorCount": 0, "requestCount": 1, "rollingCountBadRequests": 0, "rollingCountCollapsedRequests": 0, "rollingCountEmit": 1, "rollingCountExceptionsThrown": 0, "rollingCountFailure": 0, "rollingCountFallbackFailure": 0, "rollingCountFallbackRejection": 0, "rollingCountFallbackSuccess": 0, "rollingCountResponsesFromCache": 0, "rollingCountSemaphoreRejected": 0, "rollingCountShortCircuited": 0, "rollingCountSuccess": 1, "rollingCountThreadPoolRejected": 0, "rollingCountTimeout": 0, "currentConcurrentExecutionCount": 0, "rollingMaxConcurrentExecutionCount": 1, "latencyExecute_mean": 0, "latencyExecute": { "99": 0, }, "latencyTotal_mean": 0, "latencyTotal": { "99": 0, }, } Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  17. 17. Hystrix DemoRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  18. 18. Hystrix Dashboard Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  19. 19. Turbine • Aggregates streams of Server-Sent Event (SSE) JSON data into a single stream • Clusters • Instance discovery Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  20. 20. Turbine (How it works) Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  21. 21. Vizceral Vizceral is a tool from Netflix to visualize traffic between components Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  22. 22. Putting All Together DemoRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  23. 23. Roberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017
  24. 24. Thank YouRoberto Perez Alcolea - @rpalcolea - GR8ConfUS 2017

Vizceral is a tool from Netflix to visualize traffic between components. This data needs to be fed from somewhere however. Hystrix provides fault tolerance, and a nice stream of all metrics. Turbine aggregates the hystrix streams per cluster. In this talk we will go through all the steps to use Hystrix in a Groovy app and expose those metrics for Vizceral

Views

Total views

599

On Slideshare

0

From embeds

0

Number of embeds

55

Actions

Downloads

5

Shares

0

Comments

0

Likes

0

×