airbnb.io - Nerve A service registration daemon that performs health checks; companion to airbnb/synapse837









Search Preview

Airbnb Engineering & Data Science

airbnb.io
Airbnb.io Open SourceEventsBlogGithubCareersAirbnb.io NerveA service registration daemon that performs health checks; companion to airbnb/synapse837By Igo
.io > airbnb.io

SEO audit: Content analysis

Language Error! No language localisation is found.
Title Airbnb Engineering & Data Science
Text / HTML ratio 43 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud service nerve check checks services host registration defaults optional port Nerve set file parameters make path gem Airbnb Zookeeper information
Keywords consistency
Keyword Content Title Description Headings
service 17
nerve 14
check 13
checks 11
services 8
host 7
Headings
H1 H2 H3 H4 H5 H6
1 0 0 4 0 0
Images We found 1 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
service 17 0.85 %
nerve 14 0.70 %
check 13 0.65 %
checks 11 0.55 %
services 8 0.40 %
host 7 0.35 %
registration 7 0.35 %
defaults 6 0.30 %
optional 6 0.30 %
port 6 0.30 %
Nerve 5 0.25 %
set 5 0.25 %
file 5 0.25 %
parameters 5 0.25 %
make 5 0.25 %
path 5 0.25 %
gem 5 0.25 %
Airbnb 3 0.15 %
Zookeeper 3 0.15 %
information 3 0.15 %

SEO Keywords (Two Word)

Keyword Occurrence Density
will be 11 0.55 %
nerve will 10 0.50 %
the check 8 0.40 %
of the 7 0.35 %
defaults to 6 0.30 %
the service 6 0.30 %
as a 5 0.25 %
in the 4 0.20 %
that nerve 4 0.20 %
the registration 4 0.20 %
is a 4 0.20 %
service checks 4 0.20 %
you should 4 0.20 %
on which 3 0.15 %
that is 3 0.15 %
of this 3 0.15 %
to the 3 0.15 %
on the 3 0.15 %
If you 3 0.15 %
which the 3 0.15 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
that nerve will 4 0.20 % No
of the service 3 0.15 % No
which the check 3 0.15 % No
nerve will submit 3 0.15 % No
should also set 2 0.10 % No
also set these 2 0.10 % No
set these parameters 2 0.10 % No
will be monitoring 2 0.10 % No
on which the 2 0.10 % No
defaults to the 2 0.10 % No
the check will 2 0.10 % No
check will be 2 0.10 % No
will be performed 2 0.10 % No
of this path 2 0.10 % No
a number of 2 0.10 % No
will submit registration 2 0.10 % No
submit registration to 2 0.10 % No
child of this 2 0.10 % No
your reporter_type to 2 0.10 % No
a child of 2 0.10 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
be created nerve will 2 0.10 % No
registration as a child 2 0.10 % No
on which the check 2 0.10 % No
created nerve will create 2 0.10 % No
you should also set 2 0.10 % No
should also set these 2 0.10 % No
also set these parameters 2 0.10 % No
the check will be 2 0.10 % No
check will be performed 2 0.10 % No
child of this path 2 0.10 % No
a child of this 2 0.10 % No
as a child of 2 0.10 % No
the registration as a 2 0.10 % No
you set your reporter_type 2 0.10 % No
that nerve will submit 2 0.10 % No
nerve will submit registration 2 0.10 % No
will submit registration to 2 0.10 % No
is the registration as 2 0.10 % No
that is the registration 2 0.10 % No
nerve will be monitoring 2 0.10 % No

Internal links in - airbnb.io

Open Source
Airbnb Engineering & Data Science
Events
Airbnb Engineering & Data Science
Airflow Use Apache Airflow (incubating) to author workflows as directed acyclic graphs (DAGs) of tasks8,613
Airbnb Engineering & Data Science
Aerosolve A machine learning package built for humans4,385
Airbnb Engineering & Data Science
BinaryAlert Serverless real-time and retroactive malware detection705
Airbnb Engineering & Data Science
AirMapView A view abstraction to provide a map user interface with various underlying map providers1,583
Airbnb Engineering & Data Science
Airpal Web UI for PrestoDB2,345
Airbnb Engineering & Data Science
DeepLinkDispatch Easy declaration and routing of your deep links2,990
Airbnb Engineering & Data Science
Enzyme JavaScript Testing utilities for React14,372
Airbnb Engineering & Data Science
Hammerspace Hash-like interface to persistent, concurrent, off-heap storage302
Airbnb Engineering & Data Science
Hypernova A service for server-side rendering your JavaScript views4,266
Airbnb Engineering & Data Science
Epoxy An Android library for building complex screens in a RecyclerView4,301
Airbnb Engineering & Data Science
Interferon Signaling you about infrastructure or application issues178
Airbnb Engineering & Data Science
JavaScript Style Guide A mostly reasonable approach to JavaScript73,101
Airbnb Engineering & Data Science
The Knowledge Repo A next-generation curated knowledge sharing platform for data scientists and other technical professions2,992
Airbnb Engineering & Data Science
Polyglot Give your JavaScript the ability to speak many languages2,734
Airbnb Engineering & Data Science
Nerve A service registration daemon that performs health checks; companion to airbnb/synapse837
Airbnb Engineering & Data Science
mocha-wrap Fluent pluggable interface for easily wrapping `describe` and `it` blocks in Mocha tests39
Airbnb Engineering & Data Science
Rheostat Rheostat is a www, mobile, and accessible slider component built with React1,248
Airbnb Engineering & Data Science
ReAir A collection of easy-to-use tools for replicating tables and partitions between Hive data warehouses206
Airbnb Engineering & Data Science
react-dates An accessible, easily internationalizable, mobile-friendly datepicker library for the web7,757
Airbnb Engineering & Data Science
Ruby Style Guide Airbnb's Ruby Style Guide2,366
Airbnb Engineering & Data Science
react-with-styles Use CSS-in-JavaScript with themes for React without being tightly coupled to one implementation1,242
Airbnb Engineering & Data Science
Superset Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application19,842
Airbnb Engineering & Data Science
RxGroups Easily group RxJava Observables together and tie them to your Android Activity lifecycle668
Airbnb Engineering & Data Science
StreamAlert A serverless framework for real-time data analysis and alerting1,406
Airbnb Engineering & Data Science
Stemcell Airbnb's EC2 instance creation and bootstrapping tool157
Airbnb Engineering & Data Science
Synapse A transparent service discovery framework for connecting an SOA1,830
Airbnb Engineering & Data Science

Airbnb.io Spined HTML


Airbnb Engineering & Data Science Airbnb.io Open SourceEventsBlogGithubCareersAirbnb.io NerveA service registration daemon that performs health checks; companion to airbnb/synapse837By Igor SerebryanyNerve is a utility for tracking the status of machines and services. It runs locally on the boxes which make up a distributed system, and reports state information to a distributed key-value store. At Airbnb, we use Zookeeper as our key-value store. The combination of Nerve and Synapse make service discovery in the deject easy! Motivation We once use Synapse to discover remote services. However, those services needed vanilla lawmaking to register themselves in Zookeeper. Nerve simplifies underlying services, enables lawmaking reuse, and allows us to create a increasingly composable system. It does so by factoring out the vanilla into it's own application, which independenly handles monitoring and reporting. Beyond those benefits, nerve moreover acts as a unstipulated watchdog on systems. The information it reports can be used to take whoopee from a internal automation center: whoopee like scaling distributed systems up or lanugo or alerting ops or engineering well-nigh downtime. Installation Add this line to your application's Gemfile: gem 'nerve' And then execute: $ stow Or install it yourself as: $ gem install nerve Configuration Nerve depends on a single configuration file, in json format. It is usually tabbed nerve.conf.json. An example config file is misogynist in example/nerve.conf.json. The config file is well-balanced of two main sections: instance_id: the name nerve will submit when registering services; makes debugging easier services: the hash (from service name to config) of the services nerve will be monitoring service_conf_dir: path to a directory in which each json file will be interpreted as a service with the basename of the file minus the .json extension Services Config Each service that nerve will be monitoring is specified in the services hash. The key is the name of the service, and the value is a configuration hash telling nerve how to monitor the service. The configuration contains the pursuit options: host: the default host on which to make service checks; you should make this your public ip to ensure your service is publically wieldy port: the default port for service checks; nerve will report the host:port philharmonic via your chosen reporter reporter_type: the mechanism used to report up/down information; depending on the reporter you choose, spare parameters may be required. Defaults to zookeeper check_interval: the frequency with which service checks will be initiated; defaults to 500ms checks: a list of checks that nerve will perform; if all of the pass, the service will be registered; otherwise, it will be un-registered Zookeeper Reporter If you set your reporter_type to "zookeeper" you should moreover set these parameters: zk_hosts: a list of the zookeeper hosts comprising the ensemble that nerve will submit registration to zk_path: the path (or znode) where the registration will be created; nerve will create the unnoticeable node that is the registration as a child of this path Etcd Reporter Note: Etcd support is currently experimental! If you set your reporter_type to "etcd" you should moreover set these parameters: etcd_host: etcd host that nerve will submit registration to etcd_port: port to connect to etcd. etcd_path: the path where the registration will be created; nerve will create a node with a 30s ttl that is the registration as a child of this path, and then update it every few seconds Checks The cadre of nerve is a set of service checks. Each service can pinpoint a number of checks, and all of them must pass for the service to be registered. Although the word-for-word parameters passed to each trammels are different, all take a number of worldwide arguments: type: (required) the kind of check; you can see misogynist trammels types in the lib/nerve/service_watcher dir of this repo name: (optional) a descriptive, human-readable name for the check; it will be auto-generated based on the other parameters if not specified host: (optional) the host on which the trammels will be performed; defaults to the host of the service to which the trammels belongs port: (optional) the port on which the trammels will be performed; like host, it defaults to the port of the service timeout: (optional) maximum time the trammels can take; defaults to 100ms rise: (optional) how many subsequent checks must pass surpassing the trammels is considered passing; defaults to 1 fall: (optional) how many subsequent checks must goof surpassing the trammels is considered failing; defaults to 1 Custom External Checks If you would like to run a custom trammels but don't finger like trying to get it merged into this project, there is a mechanism for including external checks thanks to @bakins (airbnb/nerve#36). Build your custom trammels as a separate gem and make sure to stow install it on your system. Ideally, you should name your gem "nerve-watcher-#{type}", as that is what nerve will require on boot. However, if you have a custom name for your gem, you can specify that in the module treatise to the check.LinksGithub© Airbnb, Inc.© Airbnb, Inc.CareersDesignCareersDesignCareersDesign