Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Graphite components
@startuml
() "Graphite Web\nfront end" as graphiteWebFront
() "Carbon relay\nfront end" as carbonRelayFront
node HAProxy {
[Graphite Web proxy] as graphiteWebProxy
[Carbon relay\nproxy] as carbonRelayProxy
graphiteWebFront - graphiteWebProxy
carbonRelayFront - carbonRelayProxy
}
() "Graphite Web" as iGraphiteWeb1
() "Carbon Relay" as iCarbonRelay1
node "Graphite\nserver 1" as graphite1 {
[Graphite web] as graphiteWeb1
[Carbon relay] as carbonRelay1
[Carbon cache] as carbonCache1
database Whisper as whisper1
iGraphiteWeb1 - graphiteWeb1
iCarbonRelay1 - carbonRelay1
carbonRelay1 --> carbonCache1 : send data
carbonCache1 --> whisper1 : persist data
graphiteWeb1 --> whisper1 : read persisted data
graphiteWeb1 --> carbonCache1 : read unpersisted data
}
graphiteWebProxy -> iGraphiteWeb1
carbonRelayProxy -> iCarbonRelay1
() "Graphite Web" as iGraphiteWeb2
() "Carbon Relay" as iCarbonRelay2
node "Graphite\nserver 2" as graphite2 {
[Graphite web] as graphiteWeb2
[Carbon relay] as carbonRelay2
[Carbon cache] as carbonCache2
database Whisper as whisper2
iGraphiteWeb2 - graphiteWeb2
iCarbonRelay2 - carbonRelay2
carbonRelay2 --> carbonCache2 : send data
carbonCache2 --> whisper2 : persist data
graphiteWeb2 --> whisper2 : read persisted data
graphiteWeb2 --> carbonCache2 : read unpersisted data
}
graphiteWebProxy -> iGraphiteWeb2
carbonRelayProxy -> iCarbonRelay2
carbonRelay1 --> carbonCache2 : send data
carbonRelay2 --> carbonCache1 : send data
graphiteWeb1 --> graphiteWeb2 : query other graphite\nweb instances for metrics
graphiteWeb2 --> graphiteWeb1 : query other graphite\nweb instances for metrics
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment