Skip to content
This repository has been archived by the owner on Aug 30, 2019. It is now read-only.

Releases: DataDog/datadog-trace-agent

0.99.189

06 Jan 17:14
Compare
Choose a tag to compare

Released versions

0.99.189 for Debian/Ubuntu distributions
0.99.69 for RedHat/CentOS distributions

Improvements

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

23 Dec 11:03
Compare
Choose a tag to compare

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 the ca-certificates package to avoid errors for the TLS connection with the Datadog API #153

For more details, see the full changeset

0.99.174

19 Dec 14:19
Compare
Choose a tag to compare

Released versions

  • 0.99.174 for Debian/Ubuntu distributions
  • 0.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

15 Dec 19:44
Compare
Choose a tag to compare
  • 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

12 Dec 10:20
Compare
Choose a tag to compare

Released versions

  • 0.99.165 for Debian/Ubuntu distributions
  • 0.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 and prod). 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 endpoint v0.2 but accepts both msgpack and json formats

For more details, see the full changeset

0.99.162

28 Nov 16:52
Compare
Choose a tag to compare

Released versions

  • 0.99.162 for Debian/Ubuntu distributions
  • 0.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

23 Nov 19:55
Compare
Choose a tag to compare

Released versions

  • 0.99.158 for Debian/Ubuntu distributions
  • 0.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:

Bugfixes

  • Fix a case where the agent would panic on invalid client data

See the full changeset

0.99.156

11 Nov 18:51
Compare
Choose a tag to compare

Released versions

  • 0.99.156 for Debian/Ubuntu distributions
  • 0.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

28 Dec 15:14
Compare
Choose a tag to compare

Released versions:

  • 0.99.154 for Debian/Ubuntu distributions
  • 0.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 the sql.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 to localhost instead of all interfaces (previously it was 0.0.0.0). If you're running your trace-agent in a different host than your application node, you may need to change the binding address using the DATADOG_RECEIVER_HOST environment variable.

See the full changelog