SlideShare a Scribd company logo
1 of 26
Download to read offline
GRAPHITE:
HIGHLY AVAILABLE
Alyssa Stringham & Matthew Barlocker
About Alyssa
 Software Developer at
Lucid Software Inc
 BYU graduate with
Bachelors in Computer
Science
 I love
 Playing the carillon and
piano
 Fast-paced board games
 Hats
 Traveling
 Playing foosball
About “The Barlocker”
• Chief Architect at Lucid
Software Inc
• Bachelors degree from
BYU in Computer Science
• I love to
• play board games
• go 4-wheeling
• wrestle my sons
• fly airplanes
• Follow me on
nineofclouds.blogspot.com
Tools
Graphite
 Graphite is a highly scalable real-time graphing system
 Initially developed by Chris Davis at Orbitz.com
 Comprised of 3 related projects
 Carbon – collects and records metrics
 Whisper – Backend storage mechanism
 Graphite-Web – HTTP frontend that displays graphs
 Written in Python
 http://graphite.wikidot.com/
 https://github.com/graphite-project/
StatsD
 A network daemon that aggregates statistics for
backend services.
 Developed by Etsy
 Written in Node.js
 https://github.com/etsy/statsd/
 http://codeascraft.etsy.com/2011/02/15/measure
-anything-measure-everything/
HA Receiver
 Used to make StatsD highly available and scalable.
 Initially developed by Matthew Barlocker at Lucid
Software Inc
 Written in Node
 https://github.com/lucidsoftware/statsd-ha-receiver
Nark
 Nark is an alerting and dashboard frontend for
Graphite.
 Under active development by Lucid Software.
 Written in Scala using the Play! Framework
 MySQL backed
 https://github.com/lucidchart/nark
Demo
Data Flow Overview
Data Flows IN
 Applications report
different types of
metrics
 StatsD aggregates
metrics
 Carbon-cache gathers
and groups metrics
 Whisper stores metrics
to disk
Data Flows OUT
 User initiates request
over HTTP
 Graphite-web requests
information from
carbon-cache
 Carbon-cache reads
data from disk using
whisper
 Graphite-web builds
graph using data
High Availability & Scaling
StatsD - Options
 We can put StatsD in 3 places:
 On the reporting server
 Scales as well as your reporting servers do
 As available as the reporting servers are
 Can’t get vital metrics like
stats.production.applications.chart.users.login
 On a central server
 Doesn’t scale
 Single point of failure
 On a load-balanced set of servers
 AWS ELB doesn’t listen on UDP
 One stat will be aggregated in multiple places
StatsD - Solution
 StatsD with smart-
repeater on reporting
servers
 Accepts UDP and sends
TCP for reliability
 Reduces chattiness over
the wire
 Allows aggregation to
occur at a centralized
location
 As scalable and
available as the
application servers
StatsD - Solution
 AWS Elastic Load
Balancer distributes
traffic to ha-receivers
 HA-receivers:
 Duplicate and transform
metrics
 Deliver metrics to correct
server for aggregation
 Are stateless – they scale
horizontally
 Are highly available
behind the ELB
StatsD - Solution
 HA-receivers pass the
data to StatsD
 StatsD does the final
aggregation
 Every metric has
exactly one StatsD
destination
 Aggregated metrics
are sent to carbon
Carbon & Whisper
 Carbon and whisper direct data to disk
 The daemons are stateless except for buffers
 Carbon consists of multiple daemons
 Carbon-relay: Direct traffic to other carbon daemons
 Carbon-aggregator: A mix between carbon-relay and
StatsD
 Carbon-cache: Gather metrics in a buffer, and write
them to disk using whisper
 Whisper is called from carbon-cache, and is short-
lived
Carbon & Whisper
 We chose to use sharding
 Every server holds 1/n metrics, where n = # shards
 All servers in a shard hold the same data
 Syncing data requires a single rsync
 A b-tree of carbon-relays is used to pick a shard
 Adding new shards is as easy as adding a new node in
the b-tree of carbon-relays
 Retrieving data can be done by checking one server
from every shard
Carbon & Whisper
 StatsD sends metrics to
the root carbon-relay on
localhost
 Carbon-relay is setup in
a binary tree to pick a
shard
 Every metric goes to
exactly one shard
 Every carbon-relay goes
to either 1 shard or 2
relays
Carbon & Whisper
 Carbon-cache receives
the metrics from the
final relay
 Metrics are written to
disk using whisper on
localhost
 Carbon-cache has a
last-in-wins policy
graphite-web
 Graphite-web is stateless
 All state is contained within carbon-cache
 Reading data out from a highly available, scalable
graphite installation is the same as reading from a
single server
 Use the same ELB as the ha-receiver
Nark
 Nark is stateless
 All state is contained in MySQL and Graphite
 Nark will be no more highly available than your
MySQL and Graphite installations
 Use an ELB, an autoscale group, and a multi-AZ RDS
instance
Recap
Questions?
Feature Requests?
Thanks For Your Time
Join The Team
• Building the
next generation
of
collaborative
web
applications
• VC funded
• High growth
rate
• Profitable
• Graduates
from Harvard,
MIT, Stanford
• Former Google,
Amazon,
Microsoft
employees
https://www.golucid.co/jobs

More Related Content

What's hot

microsoft-dynamics-365-for-operations-whats-new
microsoft-dynamics-365-for-operations-whats-newmicrosoft-dynamics-365-for-operations-whats-new
microsoft-dynamics-365-for-operations-whats-new
Deneys Minne
 
Digital Transformation Strategy
Digital Transformation StrategyDigital Transformation Strategy
Digital Transformation Strategy
James Woolwine
 

What's hot (20)

Agile KPIs
Agile KPIsAgile KPIs
Agile KPIs
 
Metrics in Agile: SCRUM, XP and Agile Methods
Metrics in Agile: SCRUM, XP and Agile MethodsMetrics in Agile: SCRUM, XP and Agile Methods
Metrics in Agile: SCRUM, XP and Agile Methods
 
Introduction to Business Process Monitoring and Process Mining
Introduction to Business Process Monitoring and Process MiningIntroduction to Business Process Monitoring and Process Mining
Introduction to Business Process Monitoring and Process Mining
 
microsoft-dynamics-365-for-operations-whats-new
microsoft-dynamics-365-for-operations-whats-newmicrosoft-dynamics-365-for-operations-whats-new
microsoft-dynamics-365-for-operations-whats-new
 
Accelerating digital transformation in SAP environment
Accelerating digital transformation in SAP environmentAccelerating digital transformation in SAP environment
Accelerating digital transformation in SAP environment
 
Microsoft Dynamics CRM presentation
Microsoft Dynamics CRM presentationMicrosoft Dynamics CRM presentation
Microsoft Dynamics CRM presentation
 
Digital transformation guide and checklist 2020
Digital transformation guide and checklist 2020 Digital transformation guide and checklist 2020
Digital transformation guide and checklist 2020
 
Intro Microsoft Dynamics 365
Intro Microsoft Dynamics 365Intro Microsoft Dynamics 365
Intro Microsoft Dynamics 365
 
Build vs Buy Strategy
Build vs Buy StrategyBuild vs Buy Strategy
Build vs Buy Strategy
 
Workshop digital transformation strategy digital road-map training
Workshop digital transformation strategy digital road-map trainingWorkshop digital transformation strategy digital road-map training
Workshop digital transformation strategy digital road-map training
 
Global Payment Reference Architecture
Global Payment Reference ArchitectureGlobal Payment Reference Architecture
Global Payment Reference Architecture
 
Microsoft dynamics business central
Microsoft dynamics business centralMicrosoft dynamics business central
Microsoft dynamics business central
 
Comarch ICT Service Desk - infographic
Comarch ICT Service Desk - infographicComarch ICT Service Desk - infographic
Comarch ICT Service Desk - infographic
 
MS Dynamics 365 - Evolucion MS Dynamics 365
MS Dynamics 365 - Evolucion MS Dynamics 365MS Dynamics 365 - Evolucion MS Dynamics 365
MS Dynamics 365 - Evolucion MS Dynamics 365
 
Digital Transformation Strategy
Digital Transformation StrategyDigital Transformation Strategy
Digital Transformation Strategy
 
Preparing, Piloting & Paths to Success with Microsoft Copilot
Preparing, Piloting & Paths to Success with Microsoft CopilotPreparing, Piloting & Paths to Success with Microsoft Copilot
Preparing, Piloting & Paths to Success with Microsoft Copilot
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
gartner ITSM.docx
gartner ITSM.docxgartner ITSM.docx
gartner ITSM.docx
 
Use Case: Celonis in the Financial Services Industry
Use Case: Celonis in the Financial Services IndustryUse Case: Celonis in the Financial Services Industry
Use Case: Celonis in the Financial Services Industry
 
Microsoft Teams Phone - Calling Made Simple
Microsoft Teams Phone  - Calling Made SimpleMicrosoft Teams Phone  - Calling Made Simple
Microsoft Teams Phone - Calling Made Simple
 

Viewers also liked

Customizing the API Store & Publisher in WSO2 API Manager
Customizing the API Store & Publisher in WSO2 API ManagerCustomizing the API Store & Publisher in WSO2 API Manager
Customizing the API Store & Publisher in WSO2 API Manager
WSO2
 
Apache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series dataApache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series data
Patrick McFadin
 

Viewers also liked (14)

Graphite cluster setup blueprint
Graphite cluster setup blueprintGraphite cluster setup blueprint
Graphite cluster setup blueprint
 
Scaling Graphite At Yelp
Scaling Graphite At YelpScaling Graphite At Yelp
Scaling Graphite At Yelp
 
Scaling graphite for application metrics
Scaling graphite for application metricsScaling graphite for application metrics
Scaling graphite for application metrics
 
Cassandra Summit 2014: Cyanite — Better Graphite Storage with Apache Cassandra
Cassandra Summit 2014: Cyanite — Better Graphite Storage with Apache CassandraCassandra Summit 2014: Cyanite — Better Graphite Storage with Apache Cassandra
Cassandra Summit 2014: Cyanite — Better Graphite Storage with Apache Cassandra
 
Nark: Steroids for Graphite
Nark: Steroids for GraphiteNark: Steroids for Graphite
Nark: Steroids for Graphite
 
Cassandra Basics, Counters and Time Series Modeling
Cassandra Basics, Counters and Time Series ModelingCassandra Basics, Counters and Time Series Modeling
Cassandra Basics, Counters and Time Series Modeling
 
Customizing the API Store & Publisher in WSO2 API Manager
Customizing the API Store & Publisher in WSO2 API ManagerCustomizing the API Store & Publisher in WSO2 API Manager
Customizing the API Store & Publisher in WSO2 API Manager
 
Data Modeling with Cassandra and Time Series Data
Data Modeling with Cassandra and Time Series DataData Modeling with Cassandra and Time Series Data
Data Modeling with Cassandra and Time Series Data
 
Cassandra Basics: Indexing
Cassandra Basics: IndexingCassandra Basics: Indexing
Cassandra Basics: Indexing
 
Monitoring with Icinga2 at Adobe
Monitoring with Icinga2 at AdobeMonitoring with Icinga2 at Adobe
Monitoring with Icinga2 at Adobe
 
Performance Monitoring with Icinga2, Graphite und Grafana
Performance Monitoring with Icinga2, Graphite und GrafanaPerformance Monitoring with Icinga2, Graphite und Grafana
Performance Monitoring with Icinga2, Graphite und Grafana
 
Analyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and CassandraAnalyzing Time Series Data with Apache Spark and Cassandra
Analyzing Time Series Data with Apache Spark and Cassandra
 
BI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache CassandraBI, Reporting and Analytics on Apache Cassandra
BI, Reporting and Analytics on Apache Cassandra
 
Apache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series dataApache cassandra & apache spark for time series data
Apache cassandra & apache spark for time series data
 

Similar to Highly Available Graphite

Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
HostedbyConfluent
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
Guido Schmutz
 

Similar to Highly Available Graphite (20)

Headaches and Breakthroughs in Building Continuous Applications
Headaches and Breakthroughs in Building Continuous ApplicationsHeadaches and Breakthroughs in Building Continuous Applications
Headaches and Breakthroughs in Building Continuous Applications
 
Spark + AI Summit 2019: Headaches and Breakthroughs in Building Continuous Ap...
Spark + AI Summit 2019: Headaches and Breakthroughs in Building Continuous Ap...Spark + AI Summit 2019: Headaches and Breakthroughs in Building Continuous Ap...
Spark + AI Summit 2019: Headaches and Breakthroughs in Building Continuous Ap...
 
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
 
Spark and Couchbase: Augmenting the Operational Database with Spark
Spark and Couchbase: Augmenting the Operational Database with SparkSpark and Couchbase: Augmenting the Operational Database with Spark
Spark and Couchbase: Augmenting the Operational Database with Spark
 
Big Data, Mob Scale.
Big Data, Mob Scale.Big Data, Mob Scale.
Big Data, Mob Scale.
 
Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)
 
Time series data monitoring at 99acres.com
Time series data monitoring at 99acres.comTime series data monitoring at 99acres.com
Time series data monitoring at 99acres.com
 
Map Reduce along with Amazon EMR
Map Reduce along with Amazon EMRMap Reduce along with Amazon EMR
Map Reduce along with Amazon EMR
 
Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - July 2017
Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - July 2017Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - July 2017
Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - July 2017
 
Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - May 2017 A...
Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - May 2017 A...Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - May 2017 A...
Convert and Migrate Your NoSQL Database or Data Warehouse to AWS - May 2017 A...
 
Data Science
Data ScienceData Science
Data Science
 
The Never Landing Stream with HTAP and Streaming
The Never Landing Stream with HTAP and StreamingThe Never Landing Stream with HTAP and Streaming
The Never Landing Stream with HTAP and Streaming
 
Creating a scalable & cost efficient BI infrastructure for a startup in the A...
Creating a scalable & cost efficient BI infrastructure for a startup in the A...Creating a scalable & cost efficient BI infrastructure for a startup in the A...
Creating a scalable & cost efficient BI infrastructure for a startup in the A...
 
Apache Spark Listeners: A Crash Course in Fast, Easy Monitoring
Apache Spark Listeners: A Crash Course in Fast, Easy MonitoringApache Spark Listeners: A Crash Course in Fast, Easy Monitoring
Apache Spark Listeners: A Crash Course in Fast, Easy Monitoring
 
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
Kafka as your Data Lake - is it Feasible? (Guido Schmutz, Trivadis) Kafka Sum...
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
 
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
 
Using a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming AggregationsUsing a Fast Operational Database to Build Real-time Streaming Aggregations
Using a Fast Operational Database to Build Real-time Streaming Aggregations
 
Cloud Analytics Engine Value - Juniper Networks
Cloud Analytics Engine Value - Juniper Networks Cloud Analytics Engine Value - Juniper Networks
Cloud Analytics Engine Value - Juniper Networks
 
EEDC 2010. Scaling SaaS Applications
EEDC 2010. Scaling SaaS ApplicationsEEDC 2010. Scaling SaaS Applications
EEDC 2010. Scaling SaaS Applications
 

More from Matthew Barlocker

More from Matthew Barlocker (9)

Getting Started on Amazon EKS
Getting Started on Amazon EKSGetting Started on Amazon EKS
Getting Started on Amazon EKS
 
Optimizing Uptime in SOA
Optimizing Uptime in SOAOptimizing Uptime in SOA
Optimizing Uptime in SOA
 
Relate
RelateRelate
Relate
 
ORM or SQL? A Better Way to Query in MySQL
ORM or SQL? A Better Way to Query in MySQLORM or SQL? A Better Way to Query in MySQL
ORM or SQL? A Better Way to Query in MySQL
 
Amazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case studyAmazon EC2 to Amazon VPC: A case study
Amazon EC2 to Amazon VPC: A case study
 
Case Study: Lucidchart's Migration to VPC
Case Study: Lucidchart's Migration to VPCCase Study: Lucidchart's Migration to VPC
Case Study: Lucidchart's Migration to VPC
 
Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1Your First Scala Web Application using Play 2.1
Your First Scala Web Application using Play 2.1
 
Git essentials
Git essentialsGit essentials
Git essentials
 
Magic methods
Magic methodsMagic methods
Magic methods
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 

Recently uploaded (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 

Highly Available Graphite

  • 2. About Alyssa  Software Developer at Lucid Software Inc  BYU graduate with Bachelors in Computer Science  I love  Playing the carillon and piano  Fast-paced board games  Hats  Traveling  Playing foosball
  • 3. About “The Barlocker” • Chief Architect at Lucid Software Inc • Bachelors degree from BYU in Computer Science • I love to • play board games • go 4-wheeling • wrestle my sons • fly airplanes • Follow me on nineofclouds.blogspot.com
  • 5. Graphite  Graphite is a highly scalable real-time graphing system  Initially developed by Chris Davis at Orbitz.com  Comprised of 3 related projects  Carbon – collects and records metrics  Whisper – Backend storage mechanism  Graphite-Web – HTTP frontend that displays graphs  Written in Python  http://graphite.wikidot.com/  https://github.com/graphite-project/
  • 6. StatsD  A network daemon that aggregates statistics for backend services.  Developed by Etsy  Written in Node.js  https://github.com/etsy/statsd/  http://codeascraft.etsy.com/2011/02/15/measure -anything-measure-everything/
  • 7. HA Receiver  Used to make StatsD highly available and scalable.  Initially developed by Matthew Barlocker at Lucid Software Inc  Written in Node  https://github.com/lucidsoftware/statsd-ha-receiver
  • 8. Nark  Nark is an alerting and dashboard frontend for Graphite.  Under active development by Lucid Software.  Written in Scala using the Play! Framework  MySQL backed  https://github.com/lucidchart/nark
  • 11. Data Flows IN  Applications report different types of metrics  StatsD aggregates metrics  Carbon-cache gathers and groups metrics  Whisper stores metrics to disk
  • 12. Data Flows OUT  User initiates request over HTTP  Graphite-web requests information from carbon-cache  Carbon-cache reads data from disk using whisper  Graphite-web builds graph using data
  • 14. StatsD - Options  We can put StatsD in 3 places:  On the reporting server  Scales as well as your reporting servers do  As available as the reporting servers are  Can’t get vital metrics like stats.production.applications.chart.users.login  On a central server  Doesn’t scale  Single point of failure  On a load-balanced set of servers  AWS ELB doesn’t listen on UDP  One stat will be aggregated in multiple places
  • 15. StatsD - Solution  StatsD with smart- repeater on reporting servers  Accepts UDP and sends TCP for reliability  Reduces chattiness over the wire  Allows aggregation to occur at a centralized location  As scalable and available as the application servers
  • 16. StatsD - Solution  AWS Elastic Load Balancer distributes traffic to ha-receivers  HA-receivers:  Duplicate and transform metrics  Deliver metrics to correct server for aggregation  Are stateless – they scale horizontally  Are highly available behind the ELB
  • 17. StatsD - Solution  HA-receivers pass the data to StatsD  StatsD does the final aggregation  Every metric has exactly one StatsD destination  Aggregated metrics are sent to carbon
  • 18. Carbon & Whisper  Carbon and whisper direct data to disk  The daemons are stateless except for buffers  Carbon consists of multiple daemons  Carbon-relay: Direct traffic to other carbon daemons  Carbon-aggregator: A mix between carbon-relay and StatsD  Carbon-cache: Gather metrics in a buffer, and write them to disk using whisper  Whisper is called from carbon-cache, and is short- lived
  • 19. Carbon & Whisper  We chose to use sharding  Every server holds 1/n metrics, where n = # shards  All servers in a shard hold the same data  Syncing data requires a single rsync  A b-tree of carbon-relays is used to pick a shard  Adding new shards is as easy as adding a new node in the b-tree of carbon-relays  Retrieving data can be done by checking one server from every shard
  • 20. Carbon & Whisper  StatsD sends metrics to the root carbon-relay on localhost  Carbon-relay is setup in a binary tree to pick a shard  Every metric goes to exactly one shard  Every carbon-relay goes to either 1 shard or 2 relays
  • 21. Carbon & Whisper  Carbon-cache receives the metrics from the final relay  Metrics are written to disk using whisper on localhost  Carbon-cache has a last-in-wins policy
  • 22. graphite-web  Graphite-web is stateless  All state is contained within carbon-cache  Reading data out from a highly available, scalable graphite installation is the same as reading from a single server  Use the same ELB as the ha-receiver
  • 23. Nark  Nark is stateless  All state is contained in MySQL and Graphite  Nark will be no more highly available than your MySQL and Graphite installations  Use an ELB, an autoscale group, and a multi-AZ RDS instance
  • 24. Recap
  • 26. Join The Team • Building the next generation of collaborative web applications • VC funded • High growth rate • Profitable • Graduates from Harvard, MIT, Stanford • Former Google, Amazon, Microsoft employees https://www.golucid.co/jobs