Skip to content

Ongman/scalyr-agent-2

 
 

Repository files navigation

scalyr-agent-2

CircleCI

This repository holds the source code for the Scalyr Agent, a daemon that collects logs and metrics from customer machines and transmits them to Scalyr.

For more information on the Scalyr Agent, please visit https://www.scalyr.com/help/scalyr-agent.

To learn more about Scalyr, visit https://www.scalyr.com.

Features

The Scalyr Agent is designed to be lightweight, easy to install, and safe to run on production systems. Key features:

  • Pure Python implementation, supporting Python versions 2.4 and up
  • Lightweight (typically 15 MB RAM, 2% CPU or less)
  • Easy-to-use troubleshooting features
  • Modular configuration files
  • Extensibility using monitor plugins

Developing

From this repository, you can create your own RPM and Debian packages containing customized versions of the Scalyr Agent. For instance, you can bundle additional monitoring plugins to collect specialized data from your servers.

We also welcome submissions from the community.

Monitor plugins

Monitor plugins are one of the key features for Scalyr Agent 2. These plugins can be used to augment the functionality of Scalyr Agent 2 beyond just copying logs and metrics. For example, there are monitor plugins that will fetch page content at a given URL and then log portions of the returned content. Another plugin allows you to execute a shell command periodically and then log the output. Essentially, plugs can be used to implement any periodic monitoring task you have.

We encourage users to create their own plugins to cover features they desire. In the near future, we will be publishing documentation that describes how to implement your own monitor. And, if you feel your monitor would be useful to other Scalyr customers, we encourage you to submit it to monitor collection in the monitors/contrib directory.

To learn how to develop plugins, please see the instructions for creating a monitor plugin.

Building packages

You can use the build_packages.py script to build your own RPM or Debian packages. This is often desirable if your company has its own yum or apt repositories, or you have modified the Scalyr Agent 2 code to suit some particular need. (Of course, if you are finding you need to modify the Scalyr Agent 2 code, we encourage you to submit your changes back to the main repository).

You must have the following installed on your machine to create packages:

We strongly suggest you use the same platform that you intend to install the agent on to build the packages. This is because tools like rpmbuild and gtar are more available on the platforms that use those respective packaging systems.

To build the RPM package, execute the following command in the root directory of this repository

python build_package.py rpm

To build the Debian package, execute the following command in the root directory of this repository

python build_package.py deb

Code Formatting

This project uses the Black code autoformatting tool with default settings.

Pre-commit is used to automatically run checks including Black formatting prior to a git commit.

To use pre-commit:

  • Use one of the Installation Methods from the documentation
  • Install the hooks with pre-commit install
  • To manually execute the pre-commit hooks (including black), run pre-commit run --all-files

Pre-commit and Black Configuration

  • .pre-commit-config.yaml configures the scripts run by pre-commit
  • pyproject.toml configures the Black settings including folder exclusions for third_party

To update the Pre-commit hooks including black, run pre-commit autoupdate. This will update .pre-commit-config.yaml and will need to be committed to the repository.

Contributing

In the future, we will be pushing guidelines on how to contribute to this repository. For now, please just feel free to submit pull requests to the master branch and we will work with you.

About

The source code for Scalyr Agent 2, the daemon process Scalyr customers run on their servers to collect metrics and logs.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.7%
  • Other 1.3%