<commit_before># Goal

We wanted a quick, simple and standardized way of doing health checks for the various services in our environment. Apgar walks a directory tree (by default `/etc/apgar/healthchecks`), runs the healthCheck scripts it finds there and aggregates the results into a directory (`/var/lib/apgar` by default). That directory is then served by a simple standalone web server so the results can be used as health checks by Amazon Load Balancers and Auto Scaling Groups.

## Details

Apgar consists of two parts, apgar-server which serves the health information, and apgar-probe which collects & aggregates the individual server health checks.


# FAQ

## Why Apgar?

Why not Apgar? Virginia Apgar invented the Apgar score as a method to quickly summarize the health of newborn children. Seemed appropriate for a quick health check system.

## Why not just piggyback on a system's existing web server?

* I don't want to have to maintain configuration files for every webserver out there
* Not every system has a webserver installed
* Using a standalone server helps minimize Apgar's impact on existing services. The apgar-server component is written in golang so that it doesn't pull in any dependencies that might conflict with those needed by the services you actually care about on the system.

## Why Go

I wanted Apgar to have as little impact on the host system as possible. Go gives us static binaries, and it was a good excuse to start learning Go.<commit_msg>Add packaging instructions<commit_after># Goal

We wanted a quick, simple and standardized way of doing health checks for the various services in our environment. Apgar walks a directory tree (by default `/etc/apgar/healthchecks`), runs the healthCheck scripts it finds there and aggregates the results into a directory (`/var/lib/apgar` by default). That directory is then served by a simple standalone web server so the results can be used as health checks by Amazon Load Balancers and Auto Scaling Groups.

## Details

Apgar consists of two parts, `apgar-server` which serves the health information, and `apgar-probe` which collects & aggregates the individual server health checks.


# FAQ

## Why Apgar?

Why not Apgar? Virginia Apgar invented the Apgar score as a method to quickly summarize the health of newborn children. Seemed appropriate for a quick health check system.

## Why not just piggyback on a system's existing web server?

* I don't want to have to maintain configuration files for every webserver out there
* Not every system has a webserver installed
* Using a standalone server helps minimize Apgar's impact on existing services. Both apgar-server and apgar-probe are written in golang so that using Apgar doesn't pull in any dependencies that might conflict with those needed by the services you actually care about on a system.

## Why Go

I wanted Apgar to have as little impact on the host system as possible. Go gives us static binaries, and it was a good excuse to start learning Go.

## How can I package this so I don't have to build it on every server?

If you have bundler installed, `rake deb` will build a deb, and `rake rpm` will build a rpm.
{'fraction_non_alphanumeric': 0.04048070841239722, 'fraction_numerical': 0.0, 'mean_word_length': 4.444061962134251, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4948994', 'n_tokens_mistral': 790, 'n_tokens_neox': 733, 'n_words': 498}