Code Monkey home page Code Monkey logo

datadog-agent-boshrelease's Introduction

Datadog Agent release for BOSH

  • For Debian and RHEL/CentOS based stemcells
  • Automatically defines tags based on deployments, names and jobs
  • Process, network, ntp and disk integrations by default
  • Monit processes are added automatically to process integration
  • You can define additional integrations

What this does

This includes the Debian and RHEL/CentOS releases in the package and unpacks them in the dd-agent directory.

While a source install would be preferable, we're balancing a number of concerns.

  1. We want to ensure a consistent deployment among all customers.
  2. We want to ensure a quick deployment.

Compiling Python takes a very long time (it took up to 30 minutes for Python alone on some machines we tested it on). We also saw some disparities on some machines. It can creates issues if it stomps on the system python (which is hard to avoid in some cases) and it sometimes doesn't work.

So, our solution for this was to use our embedded python that we already have in our packages and unpack those packages (rather than installing them).

Versioning

We version the bosh release with the following scheme:

cf_major.cf_minor.agent_version

The first three are directly from the agent itself, they reflect the current agent version. The final one is the CF version, as there may be cause to release more than one during an agent bugfix.

Configuration

Upload the release to Bosh director

Create a runtime-config.yaml file:

releases:
- name: datadog-agent
  version: 1

addons:
- name: dd-agent
  jobs:
  - name: dd-agent
    release: datadog-agent
  properties:
    dd:
      use_dogstatsd: yes
      api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      tags: ["datadog", "bosh", "bosh:bosh-exp"]

tags:
  owner: datadog
  email: [email protected]

Upload runtime-config to Bosh Director: bosh update runtime-config runtime-config.yaml

Re-deploy the deployments to automatically add the agent.

Development

Since there's almost no code here, just add your checks to checks.d and get going!

There is a script bosh_prepare, which grabs all the relevant blobs gets everything ready to release.

./bosh_prepare

It will get all sources specified in the packages/*/spec files for local development.

The default blobstore is our s3 bucket, however you can change this to any blobstore you like. We have a yaml file set up to use a local blobstore as well, if for some reason you cannot use a remote one.

Authors

Datadog ([email protected])

Based on the https://github.com/SpringerPE/datadog-agent-boshrelease project by Springer Nature Platform Engineering

Contribute

If you notice a limitation or a bug with this project, feel free to open a Github issue or submit a PR.

Support

Support for this project is available via standard Datadog support channels.

License

Apache 2.0 License

datadog-agent-boshrelease's People

Contributors

arbll avatar derekwbrown avatar gmmeyer avatar gzussa avatar irabinovitch avatar jennyyjk avatar jeremy-lq avatar jriguera avatar ofek avatar olivielpeau avatar z4ce avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.