Releases: DataDog/datadog-trace-agent
0.99.189
Released versions
0.99.189
for Debian/Ubuntu distributions
0.99.69
for RedHat/CentOS distributions
Improvements
- Removed overuse of channels so that the pipeline is composed by:
API entrypoint (decoding) -> Agent (process) -> Datadog API (encoding)
- Removing external calls from the hot execution path, so that the CPU usage is lowered (#155)
- Upgrade seelog logging library (#176)
- Handle errors when sending payloads to endpoints to avoid losing payloads when the API is unavailable. If the Datadog API is not available for a long time, payloads are stored in a buffer and a rotating approach is used to discard old payloads (#164)
- Prevent re-allocating decoders and buffers for each API call. A pool is reused both for JSON and Msgpack decoders (#171)
Bugfixes
- Redis pipelines are collapsed in the right resource, to prevent useless and spammy list (#156)
- Fixed logger skip error count (#174)
- Prevent services flush if there is a partial match. This causes a lot of services flushes (and logs writes) if a trace agent is used for multiple traced applications (#164)
For more details, see the full changeset
0.99.180
Released versions
0.99.180
for Debian/Ubuntu distributions
0.99.68
for RedHat/CentOS distributions
Major changes
- the Trace Agent has been open sourced with BSD 3-clauses license
- improved the SQL quantization performance, replacing the grouping regular expression with a
GroupingFilter
. This improves also the correctness of the quantization #151
Improvements
- the agent includes a
ReceiverTimeout
so that the timeout for the receiver can be changed through the configuration file. Usually you don't need to change that value since we provide a reasonable default #154
Bugfixes
- the available
Dockerfile
includes theca-certificates
package to avoid errors for the TLS connection with the Datadog API #153
For more details, see the full changeset
0.99.174
Released versions
0.99.174
for Debian/Ubuntu distributions0.99.64
for RedHat/CentOS distributions
Major changes
- the trace agent implements a tokenizer for SQL queries. It uses the same logic of a lexer so that queries can be deconstructed in tokens and filtered properly
- if a SQL query is not recognized (i.e. unimplemented rule or a malformed SQL), the resource name will be replaced with
Non-parsable SQL query
Bugfixes
- when discarding spans, start from the highest span index
For more details, see the full changeset
0.99.170
- Make agent logging more laconic
The receiver logging handlers were the only hot loops executed for every trace
(or for every span, sic) where no consolidation was done on logging.
This should make the logging more obvious and rate limit the error
messages to something that is usable by a human to debug without
spamming the log file.
- Make the agent application configure it's own log rotation
We previously delegated log rotation to dh_installlogrotate
with mixed
results. Some users saw log files balloon in size because logrotate
was
not configured. This change does the same job at the application level by
using seelog's rolling file
writer and removes any logging configuration specific to packaging systems.
- Honor log level set by env var / config file
We previously did not honor log levels set in configuration instead defaulting to one of DEBUG or INFO. This release actually makes sure DD_LOG_LEVEL
and [trace.config] log_level
settings are taken into account
- Allow configuring log file location
Add an option in datadog.conf
for writing logs to a location other than the default /var/log/datadog/trace-agent.log
. Use like so
# /etc/dd-agent/datadog.conf
[trace.config]
log_file: /mnt/dir/trace-agent.log
Rotated log files will be placed in the same directory
- Fix a bug in single trace normalization when handling spans with distinct trace ids
0.99.165
Released versions
0.99.165
for Debian/Ubuntu distributions0.99.62
for RedHat/CentOS distributions
Major changes
- the trace agent implements the environment feature so that traces can be sent in different environments (i.e.
staging
andprod
). If no environment are selected, a default choice is done for users - the trace agent includes the new endpoint
v0.3
that acts like the previous endpointv0.2
but accepts bothmsgpack
andjson
formats
For more details, see the full changeset
0.99.162
Released versions
0.99.162
for Debian/Ubuntu distributions0.99.61
for RedHat/CentOS distributions
Changes
- Fixes #134
- Add experimental support for msgpack decoding to improve encoding/decoding performance; this feature is not used by default because a new endpoint will be released in the next version
See the full changeset
0.99.158
Released versions
0.99.158
for Debian/Ubuntu distributions0.99.60
for RedHat/CentOS distributions
Changes
- Strengthen default sampling by tuning down signature score offset
- Improve logging of configuration errors
- Improve logging for dropped traces due to client errors
- Significant changes to configuration sourcing:
- Add
-ddconfig
flag for pointing todatadog.conf
-style configuration. Useful on Mac or other environments where/etc/dd-agent/datadog.conf
isn't a valid config path. - Add more environment variable overrides, and rename a few to be consistent with datadog-agent usage
- Full details on new configuration syntax can be found here: https://app.datadoghq.com/trace/docs/tutorials/configuration
- Full details on leveraging the new syntax for Docker can be found here: https://app.datadoghq.com/trace/docs/tutorials/docker
- Add
Bugfixes
- Fix a case where the agent would panic on invalid client data
See the full changeset
0.99.156
Released versions
0.99.156
for Debian/Ubuntu distributions0.99.59
for RedHat/CentOS distributions
Bugfixing
- SQL block comments (even multilines) are removed before sending the payload to the APM backend
See the full changelog
0.99.154
Released versions:
0.99.154
for Debian/Ubuntu distributions0.99.58
for RedHat/CentOS distributions
New features
- add a query obfuscation step so that if the
sql.query
meta is not set for a SQL span, it will be set automatically with an obfuscated version of the query (resource
value is used in this case). On the other hand if you set explicitly thesql.query
meta in your code, the query is sent to our APM backend without further processing. - add support for environment variables so that you can override the
trace-agent
configuration with the following environment variables:
DATADOG_API_KEY: API key to authenticate your agent with our backend
DATADOG_RECEIVER_HOST: agent binding address; defaults to 'localhost'
DATADOG_RECEIVER_PORT: agent binding port; defaults to '7777'
DATADOG_BIND_HOST: Statsd host; defaults to 'localhost'
DATADOG_DOGSTATSD_PORT: Statsd port; defaults to '8125'
Release improvements
- add support for traces and spans longer than one minute (it was limited before)
- improve the query quantizer that affects all SQL queries and Cassandra queries. Now we're grouping better our resources, skipping more query parameters
- the agent doesn't report traces if an empty API key is provided
- services metadata are flushed only when changed. This reduces the amount of calls to the APM backend
- add human readable JSON decoding errors so that it's easier to debug issues when the client is sending a wrong payload or invalid traces / spans. The following is an example:
2016-11-09 17:10:06 ERROR (receiver.go:159) - was expecting type string and got type array at offset:525
error located at marker ---^:
ET","type":"cache","meta":{"rails.cache.backend":["file_store","/opt/app/rails-
---^
2016-11-09 17:10:06 ERROR (receiver.go:102) - request error, code:500 tags:[handler:traces v:1] err: json: cannot unmarshal array into Go value of type string
Breaking change (!) (it could alter the expected behavior of your trace agent)
- the
trace-agent
now listens tolocalhost
instead of all interfaces (previously it was0.0.0.0
). If you're running yourtrace-agent
in a different host than your application node, you may need to change the binding address using theDATADOG_RECEIVER_HOST
environment variable.
See the full changelog