惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗
博客园_首页
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
V
V2EX
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队

Datadog | The Monitor blog

Introducing our open source AI-native SAST Instrument and monitor Boomi integration flows with OpenTelemetry and Datadog Not all index scans are equal: How we cut query latency by over 99% Platform engineering metrics: What to measure and what to ignore Integrate Recorded Future threat intelligence with Datadog Cloud SIEM CI/CD security: threat modeling using a MITRE-style threat matrix CI/CD security: How to secure your GitHub ecosystem Ingress NGINX is EOL: A practical guide for migrating to Kubernetes Gateway API Operating agentic AI with Amazon Bedrock AgentCore and Datadog LLM Observability: Lessons from NTT DATA Introducing the Datadog Code Security MCP Capture and analyze custom heatmaps in Session Replay Understand session replays faster with AI summaries and smart chapters Monitor ClickHouse query performance with Datadog Database Monitoring How we designed empathetic alert sounds for on-call engineers Search and act across Datadog to resolve issues faster with Bits Assistant Measure the business impact of every product change with Datadog Experiments Analyzing round trip query latency Configuring JavaScript caches for better performance Introducing Bits AI Dev Agent for Code Security Datadog achieves ISO 42001 certification for responsible AI Monitor Nutanix clusters, hosts, and VMs with Datadog Monitor Juniper Mist in Datadog A new Host Map for modern infrastructure Annotate traces to improve LLM quality with Datadog LLM Observability What’s new in Cloud SIEM: AI-powered investigations, enhanced threat intelligence, and scalable security operations Explore Kubernetes with native OpenTelemetry data Monitor Oracle Fusion Cloud Applications with Datadog Announcing the Datadog Terraform provider v4.0.0 Scaling Kubernetes workloads on custom metrics How to design cloud environments for AI-powered threat analysis
The new Datadog Agent: Omnibus is your ticket out of depe...
Remi Hakim · 2014-08-22 · via Datadog | The Monitor blog

Making a self-installing agent that works everywhere with all its dependencies for over 20 different OS versions is hard, and we solved that problem with Omnibus packaging.

The Datadog Agent is written in Python and has so far relied on the host OS Python. One problem is that OS Distributions can ship very different versions of Python - from Python 2.4 on CentOS/RHEL 5 to Python 3 on the latest releases of Fedora. Another challenge is that the Datadog Agent often relies on third parties libraries to collect metrics and events from the apps it monitors out of the box, such as your favorite database driver library.

Dependencies, dependencies, dependencies

Before Agent 5.0, every time you wanted to install a new integration that required a dependency, e.g. the Postgres integration, you had to go through the following steps.

Instructions for the Datadog Postgres integration
Omnibus
Instructions for the Datadog Postgres integration

That process could have failed for a number of reasons:

  • The dependency in the official repositories is outdated and not compatible with the Agent.

  • The dependency the Agent needs conflicts with one that is already installed and used by other applications.

  • There is no precompiled version of the dependency and it needs to be installed from source.

These issues forced us to make sure the Agent code worked with as many different versions of the dependency as possible. So we had to write tests to check what version was currently installed on your host OS:

Over time, some of you have hit these frustrating issues and we wanted to make the installation process seamless in 100% of cases.

How did we solve this problem? With Chef Omnibus.

Enter Omnibus

Omnibus

Omnibus is a tool developed by the Chef (formerly Opscode) team in order to “easily create full-stack installers for your project across a variety of platforms.” They use it to create installers for the Chef client and server that installs everything the client and server need to run.

We did the same and designed a new continuous Agent build process that combines the power of Github, Jenkins, Vagrant and S3 to create self-contained installer packages.

The Datadog Agent build process

The build process that creates platform-specific Agent installers
Omnibus
The build process that creates platform-specific Agent installers

First, we wrote an Omnibus project definition that lives on our Jenkins server. Jenkins uses it to provision a set of VMs that mimics our customers’ platforms. Jenkins triggers all the Omnibus builds. A build compiles the dependencies needed by the Agent as defined in the project definition from the Datadog dd-agent-omnibus repository and in the software definitions in the omnibus-software repository. Finally, Omnibus calls upon FPM to produce native packages for the target systems. We deploy those Agent installer packages to our apt and yum repositories on S3 for everyone to download.

The download is a simple file and contains all the dependencies the Agent needs. Upon installation, the dependencies will be copied to the system and installed in an isolated directory: /opt/datadog-agent. This ensures there’s no conflict with existing dependencies.

Et voilà! It is now possible to enable Datadog’s Agent-based integrations without having to worry about installing dependencies. The Agent will run regardless of your OS’ version of Python and won’t interfere with applications that require the same dependencies but at a different version.

With the new Agent 5.0, you can add integrations and access new features more easily so you have the visibility you need over your entire infrastructure. To take advantage of all that Agent 5.0 has to offer, sign-up for a 14-day free trial and visit this blog post on how to install or upgrade to Agent 5.0.