Skip to content

sj26/datadog-integrations-core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Build status

Datadog Agent Core Integrations

This repository contains the Agent Integrations that Datadog officially develops and supports. To add a new integration, please see the Integrations Extras repository and the accompanying documentation.

Quick development Setup

To get started developing with the integrations-core repo you will need: gem and python.

We’ve written a gem and a set of scripts to help you get set up, ease development, and provide testing. To begin:

  • Run gem install bundler
  • Run bundle install

Once the required Ruby gems have been installed by Bundler, you can easily create a Python environment:

  • Run rake setup_env. This will install a Python virtual environment along with all the components necessary for integration development (including the core agent used by the integrations). Some basic software might be needed to install the python dependencies like gcc and libssl-dev.
  • Run source venv/bin/activate to activate the installed Python virtual environment. To exit the virtual environment, run deactivate. You can learn more about the Python virtual environment on the Virtualenv documentation.

This is a quick setup but from that point you should be able to run the default test suit rake ci:run. To go beyond we advise you to read the full documentation here.

Installing the Integrations

The Datadog Agent contains all core integrations from this repository, so to get started using them, simply install the datadog-agent package for your operating system.

Now that integrations are cleanly defined as python packages we will soon be able to ship them as python wheels that will be pip-installable from any platform (so long as the integration supports the platform). This presents a paradigm change in the way we will be delivering standalone integration upgrades, moving away from OS-specific packages to idiomatic python package delivery.

Agent releases will bundle all the latest wheels for an integration, but if you wish to upgrade between releases, or even downgrade should you need to, you will be able to do so.

Integrations as Python wheels

When working with an integration, you will now be dealing with a more structured python project. The new structure should help keep a more sane and modular codebase. To help with the transition, please take a look at the following map to understand where everything falls into place in the new approach.

FORMER LOCATION                   ->                  NEW LOCATION
{integration}/check.py            -> {integration}/datadog_checks/{integration}/{integration}.py
{integration}/conf.yaml.example   -> {integration}/datadog_checks/{integration}/conf.yaml.example
new                               -> {integration}/datadog_checks/{integration}/__init.py 
{integration}/test_check.py       -> {integration}/test/test_{integration}.py
new                               -> {integration}/test/__init__.py
new                               -> {integration}/setup.py
  • setup.py provides the setuptools setup script that will help us package and build the wheel. If you wish to learn more about python packaging please take a look at the official python documentation here

Once your setup.py is ready, creating a wheel is a easy as:

cd {integration}
python setup.py bdist_wheel

Installing the wheel into your pip environment (once ready):

cd {integration}
pip install .

NOTE: until our pip repositories are ready, you might have to install datadog-checks-base manually before this works seamlessly.

Reporting Issues

For more information on integrations, please reference our documentation and knowledge base. You can also visit our help page to connect with us.

About

Core integrations of the datadog agent

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 89.5%
  • Ruby 7.9%
  • PLSQL 1.2%
  • Erlang 0.6%
  • Shell 0.5%
  • Perl 0.2%
  • Go 0.1%