All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Postgres integration easy configuration now supports DBM.
ENABLE_HEROKU_REDIS
,ENABLE_HEROKU_POSTGRES
,REDIS_URL_VAR
, andPOSTGRES_URL_VAR
are deprecated in favor ofDD_ENABLE_HEROKU_REDIS
,DD_ENABLE_HEROKU_POSTGRES
,DD_REDIS_URL_VAR
, andDD_POSTGRES_URL_VAR
. The previous ones still work for now, but they will be removed in a future release.
- Datadog Agent pinned versions are now
7.44.0
and6.44.0
. - Redis and Postgres integrations now support more than one URL.
- Datadog Agent 7.x is now the default pinned version. If you need to keep 6.x, set the environment variable
DD_AGENT_MAJOR_VERSION=6
in your Heroku application and rebuild the slug. DD_ENABLE_HEROKU_REDIS
,DD_ENABLE_HEROKU_POSTGRES
,DD_REDIS_URL_VAR
, andDD_POSTGRES_URL_VAR
are now the environment variables to configure the Redis and Postgres integrations.
ENABLE_HEROKU_REDIS
,ENABLE_HEROKU_POSTGRES
,REDIS_URL_VAR
, andPOSTGRES_URL_VAR
are now deprecated in favor ofDD_ENABLE_HEROKU_REDIS
,DD_ENABLE_HEROKU_POSTGRES
,DD_REDIS_URL_VAR
, andDD_POSTGRES_URL_VAR
. The previous ones still work for now, but they will be removed in a future release.
- Datadog agent pinned versions are now
6.43.0
and7.43.0
- Redis and Postgres integrations can be now configured setting an environment variable, without using the prerun.sh script.
- This is the last buildpack version with Datadog Agent 6.x as default. Upgrade today to Datadog Agent 7.x by setting the environment variable
DD_AGENT_MAJOR_VERSION=7
in your Heroku application and rebuilding the slug.
- Installing checks with
agent-wrapper integration install
is no longer supported for Datadog Agent 6.x.
Upgrade to Datadog Agent 7.x by setting the environment variableDD_AGENT_MAJOR_VERSION=7
in your Heroku application and rebuilding the slug.
- Datadog agent pinned versions are now
6.42.0
and7.42.0
- Datadog agent pinned versions are now
6.41.1
and7.41.1
- Datadog agent pinned versions are now
6.40.0
and7.40.0
- Config files for integrations now can follow the same folder structure used in the Agent
- Slug size now doesn't increae when apt buildpack is used (Thanks caioariede for the contribution!)
- Datadog agent pinned versions are now
6.39.0
and7.39.0
- Added warning message when removing the APM or process agent
- Datadog agent pinned versions are now
6.38.0
and7.38.0
- Removed new introduced unneeded binaries that were increasing the footprint
- Datadog agent pinned versions are now
6.37.1
and7.37.1
- Datadog agent pinned versions are now
6.36.0
and7.36.0
- Datadog agent pinned versions are now
6.35.1
and7.35.1
- Specific Heroku Datadog Agent build (starting with
6.34.0
and7.34.0
) is now used - Datadog agent pinned versions are now
6.34.0
and7.34.0
- Community integrations can now be installed properly when the Python versions for the agent and the system are different
- Datadog agent pinned versions are now
6.33.0
and7.33.0
- Custom checks are now easier to set up. (https://docs.datadoghq.com/agent/basic_agent_usage/heroku/#enabling-custom-checks)
- Agents
6.32.4
and7.32.4
remove all dependencies on log4j and use java.util.logging instead.
- Datadog agent pinned versions are now
6.32.4
and7.32.4
- Agents
6.32.3
and7.33.3
upgrade the log4j dependency to 2.12.2 in JMXFetch to fully address CVE-2021-44228 and CVE-2021-45046
- Datadog agent pinned versions are now
6.32.3
and7.32.3
- Agents
6.32.2
and7.32.2
set-Dlog4j2.formatMsgNoLookups=True
when starting the JMXfetch process to mitigate the vulnerability described in CVE-2021-44228
- Datadog agent pinned versions are now
6.32.2
and7.32.2
- Datadog agent pinned versions are now
6.31.0
and7.31.0
- Fixed memcached integration for Python 3
- Datadog agent pinned versions are now
6.29.0
and7.29.0
- The Dyno ID is now sent as host alias (requires Agent 6.29.0/7.29.0 or newer)
- Datadog agent pinned versions are now
6.28.0
and7.28.0
- Apt signing keys are now obtained from keys.datadoghq.com
- Datadog agent pinned versions are now
6.27.0
and7.27.0
- HTTPS repo fetching
- Datadog agent pinned versions are now
6.26.0
and7.26.0
- Datadog configuration path can now be configured with the
DD_HEROKU_CONF_FOLDER
environment variable
- Datadog agent pinned versions are now
6.25.0
and7.25.0
- Heroku APT cache is now cleaned up automatically when DD_AGENT_VERSION changes
- Datadog agent pinned versions are now
6.24.0
and7.24.0
- Heroku APT cache is now cleaned up when changing stacks
- Heroku-20 stack is now supported
- Removed Datadog agent unneeded dependencies
- Datadog agent pinned versions are now
6.23.0
and7.23.0
- Buildpack name reported by
bin/detect
is now "Datadog" instead of "Sysstat"
- Removed the security-agent and system-probe dependencies to reduce slug size
- version-history.json is now created successfully, even if DD_LOGS_ENABLED="false"
- Agent now reports
datadog.heroku_agent.running
metric instead ofdatadog.agent.running
for agent versions6/7.22
and newer, to help customers identify which agents are reporting from a Heroku dyno.
- Buildpack now works correctly with agent versions 7.21.x
- Datadog agent pinned versions are now
6.22.0
and7.22.0
- DD_VERSION can now be set as part of the
prerun.sh
script
- Datadog agent pinned versions are now
6.20.2
and7.20.2
- Datadog agent pinned versions are now
6.19.0
and7.19.0
- Added documentation around running Docker in Heroku
- DD_TAGS now support space separated tags
- DD_TAGS can now be modified in the pre-run script
- Datadog agent pinned versions are now
6.18.0
and7.18.0
- DD_LOG_LEVEL is now honored for all agents
- Datadog agent pinned versions are now
6.17.0
and7.17.0
- Datadog agent pinned versions are now
6.16.1
and7.16.1
- Fixed
run_path
for the logs collector
- Datadog's buildpack now supports Agent versions 7.16 forward
- Datadog agent pinned versions are now
6.16.0
and7.16.0
- Datadog agent pinned version is now
6.15.1
- Added a deprecation warning if users are using Python 2 in 6.x.
- Fixed
datadog.sh
to run correctly in flynn.io.
- Added
buildpackversion
tag with the version of the buildpack. - Documentation section about rebuilding slugs when modifying certain options.
- Documenation about the order for slug layers.
- Fixed
mcache
integration for python 2.
- Documentation on how to collect system metrics from the dynos.
agent-wrapper
binary. This executable bash script will be added to thePATH
when starting a dyno using Datadog's buildpack to help running agent's debugging/status commands.
LD_LIBRARY_PATH
indatadog.sh
is not exported anymore, to avoid conflicts with Heroku's runtime- Compilation linking paths are not exported anymore
-
Slug size reduction:
The buildpack now removes the
process-agent
andtrace-agent
agent binaries, if the user has process monitoring and/or APM disabled on their configuration, to reduce slug size. Added documentation. -
Improved
hostname
related documentation
- To reduce the slug size, the buildpack removes some libraries not used in a Heroku environment:
kubernetes
openstack
pysnmp_mibs
pyVim
andpyVmomi
- Datadog agent pinned version is now
6.14.0
- Added unit tests for the buildpack
- The environment variable to select the python version is now
DD_PYTHON_VERSION
. Added documentation about this
- Fixed
start
command deprecation (#126)
- Datadog agent versions are now pinned to a specific version if
DD_AGENT_VERSION
is not set (currently 6.13.0) - For versions 6.14 onwards, agent ships with both Python2 and Python3. Set
PYTHON_VERSION
to "2" or "3" to select the version of the Python runtime.
- Fixed
DD_TAGS
documentation
Merged PR from @dirk to fix tag injection for Agent 6.12+
- 6.12 changed the template config file format. This release adds a new regex to maintain tag injection.
Fixed the python path generation code.
- Python path generation for embedded python site packages has been updated for Agent 6.12 release.
Fixed the python path generation code.
- Python path generation for embedded python site packages has been updated for Agent 6.12 release.
When pinning Datadog Agent versions, previous buildpacks pulled old versions from the buildpack cache causing availability to be unreliable. The buildpack now pulls old versions from apt.
- The buildpack now pulls old versions from apt.
- Updated documentation around system metrics.
Fixed the python path generation code. In between 1.6.0 and 1.6.1 the buildpack added trace search configs to the datadog.yaml
file. This has been removed as support for the DD_APM_ANALYZED_SPANS
environment variable is directly supported by the Agent.
- Python path generation for embedded python site packages has been fixed.
Updated the run script to provide a better way for users to arbitrarily modify the environment and configurations.
- Added prerun.sh support so users can modify the environment and configurations
- Added appropriate documentation. Thanks to abtreece for the postgres auto config idea!
- Updated the way python_path is built to be more reliable (uses find instead of ls)
- Updated the postgres integration documentation to include more details, including ssl enabling (required by hosted Heroku postgres)
External keyservers were becoming an issue for reliability so the Datadog public key has been added to the buildpack. A few updates were made regarding Agent versioning and the documentation was clarified.
- Added the Datadog public PGP key.
- Invalid pinned versions of the Datadog Agent now returns a list of valid options.
- Now uses the included PGP key to validate the Datadog package
- Datadog Agent from version 6.4.1 now uses the
run
command. Previous versions will still usestart
Thanks to pawelchcki for spotting that the integration support lacked a check if no integration files existed. This update fixes an issue where the Datadog Trace Agent may fail to start or drop traces.
- A small check to ensure integration configuration files exist when running logic to import them.
Thanks to lucasm-iRonin for adding functionality to support Datadog Agent integrations!
- Now using sks-keyservers instead of ubuntu keyservers. This should increase reliability
- Basic Datadog Agent integration support.
- Removed docs referencing Datadog documentation site. That site will soon pull from this repo.
Thanks to dreid for help resolving the apt-key issue, fixing compatibility with the Heroku-18 stack.
- Fixed apt-key issue, buildpack compatibility with Heroku-18 stack.
- Fixed PYTHONPATH issue preventing python-based core integrations from running.
- Set APM log location resulting in log location related errors. APM log is now at /app/.apt/etc/datadog/datadog-apm.log
- Removed dynohost tag
Hostnames are not always RFC1123 compliant. Invalid hostnames led to unexpected non-reporting.
- Updated documentation to mention enabling Heroku Labs metadata (required for DD_DYNO_HOST)
- Added a check for non-compliant hostnames. Buildpack will rename and throw a warning
Using dyno name as hostname was not properly namespaced, so multiple apps would have dyno hostname collisions. Appname has been added to prevent this.
- DD_DYNO_HOST reports hosts as appname.dynoname.
Fixed an issue where custom tags completely override the built-in tags for dyno information. Added a switch to change the hostname from host to dyno. This will provide some flexibility and control in how you are billed by Datadog.
- DD_TAGS will now merge with other tags set by the buildpack, rather than overriding them.
- DD_DYNO_HOST will allow you to set the agent hostname to the dyno name, rather than host.
- Added a tag for dynotype.
Changed buildpack to use dyno hostnames rather than setting the application name as the hostname. Though the previous method helped simplify continuity, it led to metrics aggregation errors for applications running many dynos. The application name is now available under the "appname" tag when Heroku Labs Dyno Metadata is enabled or the "HEROKU_APP_NAME" environment variable is set.
- Hostname will default to dyno host name, unless DD_HOSTNAME is set (not recommended)
- Application name added as "appname" tag.
- Removed README documentation about histogram percentiles and APM that were not specific to the buildpack. See https://docs.datadoghq.com for information about those features.
Start the Trace Agent.
- Removed Trace Agent config file code. The Trace Agent now uses the main datadog.yaml file.
- Updated the README file to document DD_APM_ENABLED.
- Datadog Agent 6 no longer starts the Trace Agent (was moved to systemd service for Linux systems). Added code to start the Trace Agent.
Resolved issue with dpkg and multiple packages available
- Includes a fix from Zunda that limits the dpkg install to the latest package.
Updated the buildpack to use stable releases and removed alpha flag (because nobody really knows what that means anyway ;))
- Updated the apt repo to use
stable 6
(no longer beta) - Incorporates a parameter change that resolved problems in beta rc releases (Thanks Zunda!)
Mostly fixes and a small feature.
- If no Datadog Agent version has been pinned, the build process will tell you how to pin the current version.
- Updated the runner script to insert tags in the correct location in the conf file.
- Env vars are not automatically loaded when building slugs, so the previous version pinning didn't work.
The buildpack was re-written to use the new Datadog Agent 6 and gather full system metrics.
- Added an Apache 2 license.
- Added a notice file with copyright info.
- Added a way to pin Datadog Agent versions.
- Added a changelog.
- Added a more comprehensive "Contributing" section to the readme.
- Updated from the Datadag Agent 5 to Agent 6. This includes the main agent and the trace agent.
- Deprecated env vars that no longer apply in Agent 6
Note that the previous Agent-5-based version of the buildpack is now available using the legacy
tag.
To continue using this old version, you can update your app by running:
# Remove the old untagged buildpack
heroku buildpacks:remove https://github.com/DataDog/heroku-buildpack-datadog.git
# Add the tagged version of the buildpack
heroku buildpacks:add --index 1 https://github.com/DataDog/heroku-buildpack-datadog.git#legacy