Skip to main content

Posts

Showing posts with the label cache

What is Graphite?

What Graphite is and is not Graphite does two things: Store numeric time-series data Render graphs of this data on demand What Graphite does not do is collect data for you, however there are some  tools  out there that know how to send data to graphite. Even though it often requires a little code,  sending data  to Graphite is very simple. About the project Graphite is an enterprise-scale monitoring tool that runs well on cheap hardware. It was originally designed and written by  Chris Davis  at  Orbitz  in 2006 as side project that ultimately grew to be a foundational monitoring tool. In 2008, Orbitz allowed Graphite to be released under the open source Apache 2.0 license. Since then Chris has continued to work on Graphite and has deployed it at other companies including  Sears , where it serves as a pillar of the e-commerce monitoring system. Today many large  companies  use it. The architecture in a nutshell Grap...

What is Graphite?

What Graphite is and is not Graphite does two things: Store numeric time-series data Render graphs of this data on demand What Graphite does not do is collect data for you, however there are some  tools  out there that know how to send data to graphite. Even though it often requires a little code,  sending data  to Graphite is very simple. About the project Graphite is an enterprise-scale monitoring tool that runs well on cheap hardware. It was originally designed and written by  Chris Davis  at  Orbitz  in 2006 as side project that ultimately grew to be a foundational monitoring tool. In 2008, Orbitz allowed Graphite to be released under the open source Apache 2.0 license. Since then Chris has continued to work on Graphite and has deployed it at other companies including  Sears , where it serves as a pillar of the e-commerce monitoring system. Today many large  companies  use it. The architecture in a nutshell Graphite consists of 3 software components: carbon  - a  Twisted  dae...

Configuring Graphite on Centos 7

Clone the source code: git clone https://github.com/graphite-project/graphite-web.git cd graphite-web git checkout 0.9.x cd .. git clone https://github.com/graphite-project/carbon.git cd carbon git checkout 0.9.x cd .. git clone https://github.com/graphite-project/whisper.git cd whisper git checkout 0.9.x cd .. Configure whisper: pushd whisper sudo python setup.py install popd Configure carbon: pushd carbon sudo python setup.py install popd pushd /opt/graphite/conf/ sudo cp carbon.conf.example carbon.conf sudo cp storage-schemas.conf.example storage-schemas.conf popd storage-schemas.conf has information about schema definitions for Whisper files. We can define the data retention time under this file. By default it retains everything for one day. Once graphite is configured changing this file wont change whisper’s internal metrics. You can use whisper-resize.py for that. Configure Graphite pushd graphite-web python check-dependencies.py Install the unmet dependencies: sudo ...

Configuring Graphite on Centos 7

Clone the source code: git clone https://github.com/graphite-project/graphite-web.git cd graphite-web git checkout 0.9.x cd .. git clone https://github.com/graphite-project/carbon.git cd carbon git checkout 0.9.x cd .. git clone https://github.com/graphite-project/whisper.git cd whisper git checkout 0.9.x cd .. Configure whisper: pushd whisper sudo python setup.py install popd Configure carbon: pushd carbon sudo python setup.py install popd pushd /opt/graphite/conf/ sudo cp carbon.conf.example carbon.conf sudo cp storage-schemas.conf.example storage-schemas.conf popd storage-schemas.conf has information about schema definitions for Whisper files. We can define the data retention time under this file. By default it retains everything for one day. Once graphite is configured changing this file wont change whisper’s internal metrics. You can use whisper-resize.py for that. Configure Graphite pushd graphite-web python check-dependencies.py Install the unmet dependencies: sudo apt-get insta...

Linux ldconfig Command Examples

What is ldconfig? ldconfig is used to create, udpate and remove symbolic links for the current shared libraries based on the lib directories present in the /etc/ld.so.conf 3 ldconfig Examples 1. Display current libraries from the cache This displays the list of directories and the libraries that are stored in the current cache. In the following example, it indicates that there are 916 libraries found in the cache file /etc/ld.so.cache, and it lists all of them below. # ldconfig -p | head -5 916 libs found in cache `/etc/ld.so.cache' libzephyr.so.4 (libc6) => /usr/lib/libzephyr.so.4 libzbar.so.0 (libc6) => /usr/lib/libzbar.so.0 libz.so.1 (libc6) => /lib/libz.so.1 libz.so (libc6) => /usr/lib/libz.so 2. Display libraries from every directory Scans all the directories, and prints the directory name, and all the links that are created under it. # ldconfig -v | head /usr/lib/mesa: libGL.so.1 -> libGL.so.1.2 /usr/lib/i686-linux-gnu: liblouis.so.2 ->...

Linux ldconfig Command Examples

What is ldconfig? ldconfig is used to create, udpate and remove symbolic links for the current shared libraries based on the lib directories present in the /etc/ld.so.conf 3 ldconfig Examples 1. Display current libraries from the cache This displays the list of directories and the libraries that are stored in the current cache. In the following example, it indicates that there are 916 libraries found in the cache file /etc/ld.so.cache, and it lists all of them below. # ldconfig -p | head -5 916 libs found in cache `/etc/ld.so.cache' libzephyr.so.4 (libc6) => /usr/lib/libzephyr.so.4 libzbar.so.0 (libc6) => /usr/lib/libzbar.so.0 libz.so.1 (libc6) => /lib/libz.so.1 libz.so (libc6) => /usr/lib/libz.so 2. Display libraries from every directory Scans all the directories, and prints the directory name, and all the links that are created under it. # ldconfig -v | head /usr/lib/mesa: libGL.so.1 -> libGL.so.1.2 /usr/lib/i686-linux-gnu: liblouis.so.2 -> liblouis.so.2.2...

Microservices at Netflix scale

Netflix took 7 years to completely transform to microservices. The traditional approach that was followed was that developers contributed to their individual jars/wars which would go through the regular sprint iteration. As can be seen above that there are issues with the velocity for delivery and reliability. Any one change in one service it would reflect into the other services which was very difficult to handle. This caused too many bugs and single point database. Few years back the production database of netflix got corrupted and the users/customers saw the following message. At netflix they want their services to isolate single point failures so here comes Hystrix.  Hystrix  is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable. They test their system w...

Microservices at Netflix scale

Netflix took 7 years to completely transform to microservices. The traditional approach that was followed was that developers contributed to their individual jars/wars which would go through the regular sprint iteration. As can be seen above that there are issues with the velocity for delivery and reliability. Any one change in one service it would reflect into the other services which was very difficult to handle. This caused too many bugs and single point database. Few years back the production database of netflix got corrupted and the users/customers saw the following message. At netflix they want their services to isolate single point failures so here comes Hystrix.  Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable. They test their system with fault injection test framework (FIT).