github.com/waldiirawan/apm-agent-go/v2@v2.2.2/CHANGELOG.asciidoc (about) 1 ifdef::env-github[] 2 NOTE: Release notes are best read in our documentation at 3 https://www.elastic.co/guide/en/apm/agent/go/current/release-notes.html[elastic.co] 4 endif::[] 5 6 //// 7 [[release-notes-x.x.x]] 8 ==== x.x.x - YYYY/MM/DD 9 10 [float] 11 ===== Breaking changes 12 13 [float] 14 ===== Features 15 * Cool new feature: {pull}2526[#2526] 16 17 [float] 18 ===== Bug fixes 19 //// 20 21 [[unreleased]] 22 === Unreleased 23 24 https://github.com/elastic/apm-agent-go/compare/v2.2.0...main[View commits] 25 26 [[release-notes-2.x]] 27 === Go Agent version 2.x 28 29 [[release-notes-2.2.0]] 30 ==== 2.2.0 - 2022/10/31 31 32 - Global labels are now parsed when the tracer is constructed, instead of parsing only once on package initialization {pull}1290[#1290] 33 - Rename span_frames_min_duration to span_stack_trace_min_duration {pull}1285[#1285] 34 - Ignore `\*principal\*` headers by default {pull}1332[#1332] 35 - Add `apmpgx` module for postgres tracing with jackc/pgx driver enhanced support e.g. Copy and Batch statements {pull}1301[#1301] 36 - Disable same-kind and enable exact-match compression by default {pull}1256[#1256] 37 - module/apmechov4: add `WithRequestName` option {pull}1268[#1268] 38 - Added support for adding span links when starting transactions and spans {pull}1269[#1269] 39 - module/apmawssdkgo: fixed a panic related to drop spans {pull}1273[#1273] 40 - Added support for the `trace_continuation_strategy` {pull}1270[#1270] 41 - `transaction.type` and `span.type` are now set to "custom" if an empty string is specified {pull}1272[#1272] 42 - We now capture the database instance name in `service.target.*`, for improved backend granularity {pull}1279[#1279] 43 - Improved Kubernetes pod UID and container ID discovery coverage {pull}1288[#1288] 44 - Fixed `span.name` for AWS SNS spans to match the spec {pull}1286[#1286] 45 - module/apmgin: add `WithPanicPropagation` option {pull}1314[#1314] 46 - Exit spans may now have non-exit child spans if they have the same type and subtype {pull}1320[#1320] 47 - Updated instrumentation modules to mark spans as exit spans where possible {pull}1317[#1317] 48 49 [[release-notes-2.1.0]] 50 ==== 2.1.0 - 2022/05/20 51 52 - Replace `authorization` with `*auth*` pattern for sanitizing field names {pull}1230[#1230] 53 - Fetch initial server version async to prevent blocking NewTracer for 10 seconds {pull}1239[#1239] 54 - Fix race in `apm.DefaultTracer` which could lead to multiple tracers being created {pull}1248[#1248] 55 56 [[release-notes-2.0.0]] 57 ==== 2.0.0 - 2022/03/17 58 59 - Record `transaction.name` on errors {pull}1177[#1177] 60 - Fix panic in apmgocql {pull}1180[#1180] 61 - Stop recording unused `transaction.duration.*` and `transaction.breakdown.count` metrics {pull}1167[#1167] 62 - Make tracestate parsing more lenient, according to W3c spec, allowing duplicate vendor keys {pull}1183[#1183] 63 - Introduced `transport.NewHTTPTransportOptions` {pull}1168[#1168] 64 - Change `ELASTIC_APM_SPAN_FRAMES_MIN_DURATION` special cases to match agent spec {pull}1188[#1188] 65 - Remove stacktrace.ContextSetter {pull}1187[#1187] 66 - Drop support for versions of Go prior to 1.15.0 {pull}1190[#1190] 67 - Replace apm.DefaultTracer with an initialization function {pull}1189[#1189] 68 - Remove transport.Default, construct a new Transport in each new tracer {pull}1195[#1195] 69 - Add service name and version to User-Agent header {pull}1196[#1196] 70 - Remove WarningLogger, add Warningf methe to Logger {pull}1205[#1205] 71 - Replace Sampler with ExtendedSampler {pull}1206[#1206] 72 - Drop unsampled txs when connected to an APM Server >= 8.0 {pull}1208[#1208] 73 - Removed SetTag {pull}1218[#1218] 74 - Unexport Tracer's fields -- TracerOptions must be used instead {pull}1219[#1219] 75 76 [[release-notes-1.x]] 77 === Go Agent version 1.x 78 79 [[release-notes-1.15.0]] 80 ==== 1.15.0 - 2021/12/08 81 82 - Deprecate `http.request.socket.encrypted` and stop recording it in `module/apmhttp`, `module/apmgrpc` and `module/apmfiber`. {pull}1129[#1129] 83 - Collect and send span destination service timing statistics about the dropped spans to the apm-server. {pull}1132[#1132] 84 - Experimental support to compress short exit spans into a composite span. Disabled by default. {pull}1134[#1134] 85 - Discard exit spans shorter or equal than `ELASTIC_APM_EXIT_SPAN_MIN_DURATION`. Defaults to `1ms`. {pull}1138[#1138] 86 - module/apmprometheus: add support for mapping prometheus histograms. {pull}1145[#1145] 87 - Fixed a bug where errors in cloud metadata discovery could lead to the process aborting during initialisation {pull}1158[#1158] 88 - Fixed a data race related to HTTP request header sanitisation {pull}1159[#1159] 89 - `apm.CaptureError`, `apm.Error.SetTransaction`, and `apm.Error.SetSpan` will now set the associated transaction or span's default outcome to "failure" {pull}1160[#1160] 90 91 [[release-notes-1.14.0]] 92 ==== 1.14.0 - 2021/09/22 93 94 - span: automatically infer `destination.service.resource` information when the span is an exit span and deprecate `destination.service.name` and `destination.service.type` {pull}1003[#1003] 95 - module/apmhttp: add apmhttp.WithClientSpanType ClientOption to set the span type of http client requests {pull}1106[#1106] 96 - module/apmazure: introduce instrumentation module for Azure blob, queue, and file storage {pull}1109[#1109] 97 - module/apmelasticsearch: propagete `Traceparent` and `Tracestate` headers to Elasticsearch {pull}1002[#1002] 98 - module/apmfiber: introduce instrumentation module for Fiber web framework {pull}999[#999] 99 - module/apmawssdkgo: fix a bug where the module would panic when an unsupported service is used {pull}1006[#1006] 100 - module/apmfasthttp: report the correct HTTP Status Code instead of always reporting `200` {pull}1104[#1104] 101 102 [[release-notes-1.13.1]] 103 ==== 1.13.1 - 2021/08/05 104 105 - Fix concurrency bugs in breakdown metrics and module/apmhttp.WithClientTrace {pull}997[#997] 106 107 [[release-notes-1.13.0]] 108 ==== 1.13.0 - 2021/07/28 109 110 - Prefer w3c traceparent header over legacy elastic-apm-traceparent {pull}963[#963] 111 - Context.SetUsername now takes precedence over HTTP user info from Context.SetHTTPRequest {pull}973[#973] 112 - module/apmhttp: fix a potential panic in WithClientTrace {pull}989[#989] 113 - add support for go-restful v3 {pull}968[#968] 114 - add fasthttp support {pull}957[#957] 115 - module/apmgin: support multiple routes using the same handler {pull}983[#983] 116 - add apm-server CA cert functionality {pull}982[#982] 117 118 https://github.com/elastic/apm-agent-go/releases/tag/v1.12.0[View release] 119 120 [[release-notes-1.12.0]] 121 ==== 1.12.0 - 2021/05/25 122 123 https://github.com/elastic/apm-agent-go/releases/tag/v1.12.0[View release] 124 125 - module/apmgrpc: fix status code to outcome mapping {pull}902[#902] 126 - module/apmawssdkgo: add support for instrumenting s3 RPC calls {pull}927[#927] 127 - module/apmawssdkgo: add support for instrumenting dynamodb RPC calls {pull}928[#928] 128 - SpanContext.SetDestinationService is a no-op if either Name or Resource is empty {pull}931[#931] 129 - module/apmawssdkgo: add support for instrumenting sqs RPC calls {pull}933[#933] 130 - module/apmawssdkgo: add support for instrumenting sns RPC calls {pull}938[#938] 131 - Parse "//" comments in SQL/CQL {pull}937[#937] 132 - Fix CaptureError to capture the request body when ELASTIC_APM_CAPTURE_BODY is enabled {pull}906[#906] 133 - module/apmgrpc: record underlying HTTP/2 context {pull}904[#904] 134 - module/apmot: handle http.host tag as url.Host {pull}954[#954] 135 - apm: add add ParentID methods to Span and Transaction {pull}956[#956] 136 137 [[release-notes-1.11.0]] 138 ==== 1.11.0 - 2021/02/01 139 140 https://github.com/elastic/apm-agent-go/releases/tag/v1.11.0[View release] 141 142 - Make TRANSACTION_IGNORE_URLS dynamically configurable: {pull}872[#872] 143 144 [[release-notes-1.10.0]] 145 ==== 1.10.0 - 2021/01/20 146 147 https://github.com/elastic/apm-agent-go/releases/tag/v1.10.0[View release] 148 149 - module/apmsql: add tracingDriver.Unwrap method to get underlying driver {pull}#849[#849] 150 - module/apmgopgv10: add support for github.com/go-pg/pg/v10 {pull}857[#857] 151 - Enable central configuration of "sanitize_field_names" {pull}856[#856] 152 - module/apmgrpc: set span destination context {pull}861[#861] 153 154 [[release-notes-1.9.0]] 155 ==== 1.9.0 - 2020/11/02 156 157 https://github.com/elastic/apm-agent-go/releases/tag/v1.9.0[View release] 158 159 - module/apmgoredisv8: introduce new package to support go-redis v8 {pull}780[#780] 160 - module/apmhttp: introduce httptrace client option {pull}788[#788] 161 - module/apmsql: add support for database/sql/driver.Validator {pull}791[#791] 162 - Record sample rate on transactions and spans, propagate through `tracestate` {pull}804[#804] 163 - module/apmredigo: change redigo dependency to v1.8.2 {pull}807[#807] 164 - Deprecate IGNORE_URLS, replace with TRANSACTION_IGNORE_URLS {pull}811[#811] 165 - Tracer.Close now waits for the transport goroutine to end before returning {pull}816[#816] 166 - Relax Kubernetes pod UID discovery rules {pull}819[#819] 167 - Add transaction and span outcome {pull}820[#820] 168 - Add cloud metadata, configurable with ELASTIC_APM_CLOUD_PROVIDER {pull}823[#823] 169 - Round ELASTIC_APM_SAMPLING_RATE with 4 digits precision {pull}828[#828] 170 - module/apmhttp: implement io.ReaderFrom in wrapped http.ResponseWriter {pull}830[#830] 171 - Fixed Transaction.Discard so that it sets TransactionData to nil {pull}836[#836] 172 - module/apmsql/pgxv4: add support for pgx driver {pull}831[#831] 173 - module/apmgormv2: add support for gorm.io (GORM v2) {pull}825[#825] 174 175 [[release-notes-1.8.0]] 176 ==== 1.8.0 - 2020/05/06 177 178 https://github.com/elastic/apm-agent-go/releases/tag/v1.8.0[View release] 179 180 - Add "recording" config option, to dynamically disable event recording {pull}737[#737] 181 - Enable central configuration of "stack_frames_min_duration" and "stack_trace_limit" {pull}742[#742] 182 - Implement "CloseIdleConnections" on the Elasticsearch RoundTripper {pull}750[#750] 183 - Fix apmot nil pointer dereference in Tracer.Inject {pull}763[#763] 184 185 [[release-notes-1.7.2]] 186 ==== 1.7.2 - 2020/03/19 187 188 https://github.com/elastic/apm-agent-go/releases/tag/v1.7.2[View release] 189 190 - Update cucumber/godog to 0.8.1 {pull}733[#733] 191 192 [[release-notes-1.7.1]] 193 ==== 1.7.1 - 2020/03/05 194 195 https://github.com/elastic/apm-agent-go/releases/tag/v1.7.1[View release] 196 197 - Fix segfault on 32-bit architectures {pull}728[#728] 198 199 [[release-notes-1.7.0]] 200 ==== 1.7.0 - 2020/01/10 201 202 https://github.com/elastic/apm-agent-go/releases/tag/v1.7.0[View release] 203 204 - Add span.context.destination.* {pull}664[#664] 205 - transport: fix Content-Type for pprof data {pull}679[#679] 206 - Add "tracestate" propagation {pull}690[#690] 207 - Add support for API Key auth {pull}698[#698] 208 - module/apmsql: report rows affected {pull}700[#700] 209 210 [[release-notes-1.6.0]] 211 ==== 1.6.0 - 2019/11/17 212 213 https://github.com/elastic/apm-agent-go/releases/tag/v1.6.0[View release] 214 215 - module/apmhttp: add WithClientRequestName option {pull}609[#609] 216 - module/apmhttp: add WithPanicPropagation function {pull}611[#611] 217 - module/apmgoredis: add Client.RedisClient {pull}613[#613] 218 - Introduce apm.TraceFormatter, for formatting trace IDs {pull}635[#635] 219 - Report error cause(s), add support for errors.Unwrap {pull}638[#638] 220 - Setting `ELASTIC_APM_TRANSACTION_MAX_SPANS` to 0 now disables all spans {pull}640[#640] 221 - module/apmzerolog: add Writer.MinLevel {pull}641[#641] 222 - Introduce SetLabel and deprecate SetTag {pull}642[#642] 223 - Support central config for `ELASTIC_APM_CAPTURE_BODY` and `ELASTIC_APM_TRANSACTION_MAX_SPANS` {pull}648[#648] 224 - module/apmgorm: sql.ErrNoRows is no longer reported as an error {pull}645[#645] 225 - Server URL path is cleaned/canonicalizsed in order to avoid 301 redirects {pull}658[#658] 226 - `context.request.socket.remote_address` now reports the peer address {pull}662[#662] 227 - Experimental support for periodic CPU/heap profiling {pull}666[#666] 228 - module/apmnegroni: introduce tracing Negroni middleware {pull}671[#671] 229 - Unescape hyphens in k8s pod UIDs when the systemd cgroup driver is used {pull}672[#672] 230 - Read and propagate the standard W3C "traceparent" header {pull}674[#674] 231 232 [[release-notes-1.5.0]] 233 ==== 1.5.0 - 2019/07/31 234 235 https://github.com/elastic/apm-agent-go/releases/tag/v1.5.0[View release] 236 237 - Add Context.SetCustom {pull}581[#581] 238 - Add support for extracting UUID-like container IDs {pull}577[#577] 239 - Introduce transaction/span breakdown metrics {pull}564[#564] 240 - Optimised HTTP request body capture {pull}592[#592] 241 - Fixed transaction encoding to drop tags (and other context) for non-sampled transactions {pull}593[#593] 242 - Introduce central config polling {pull}591[#591] 243 - Fixed apmgrpc client interceptor, propagating trace context for non-sampled transactions {pull}602[#602] 244 245 [[release-notes-1.4.0]] 246 ==== 1.4.0 - 2019/06/20 247 248 https://github.com/elastic/apm-agent-go/releases/tag/v1.4.0[View release] 249 250 - Update opentracing-go dependency to v1.1.0 251 - Update HTTP routers to return "<METHOD> unknown route" if route cannot be matched {pull}486[#486] 252 - module/apmchi: introduce instrumentation for go-chi/chi router {pull}495[#495] 253 - module/apmgoredis: introduce instrumentation for the go-redis/redis client {pull}505[#505] 254 - module/apmsql: exposed the QuerySignature function {pull}515[#515] 255 - module/apmgopg: introduce instrumentation for the go-pg/pg ORM {pull}516[#516] 256 - module/apmmongo: set minimum Go version to Go 1.10 {pull}522[#522] 257 - internal/sqlscanner: bug fix for multi-byte rune handling {pull}535[#535] 258 - module/apmgrpc: added WithServerRequestIgnorer server option {pull}531[#531] 259 - Introduce `ELASTIC_APM_GLOBAL_LABELS` config {pull}539[#539] 260 - module/apmgorm: register `row_query` callbacks {pull}532[#532] 261 - Introduce `ELASTIC_APM_STACK_TRACE_LIMIT` config {pull}559[#559] 262 - Include agent name/version and Go version in User-Agent {pull}560[#560] 263 - Truncate `error.culprit` at 1024 chars {pull}561[#561] 264 265 [[release-notes-1.3.0]] 266 ==== 1.3.0 - 2019/03/20 267 268 https://github.com/elastic/apm-agent-go/releases/tag/v1.3.0[View release] 269 270 - Rename "metricset.labels" to "metricset.tags" {pull}438[#438] 271 - Introduce `ELASTIC_APM_DISABLE_METRICS` to disable metrics with matching names {pull}439[#439] 272 - module/apmelasticsearch: introduce instrumentation for Elasticsearch clients {pull}445[#445] 273 - module/apmmongo: introduce instrumentation for the MongoDB Go Driver {pull}452[#452] 274 - Introduce ErrorDetailer interface {pull}453[#453] 275 - module/apmhttp: add CloseIdleConnectons and CancelRequest to RoundTripper {pull}457[#457] 276 - Allow specifying transaction (span) ID via TransactionOptions/SpanOptions {pull}463[#463] 277 - module/apmzerolog: introduce zerolog log correlation and exception-tracking writer {pull}428[#428] 278 - module/apmelasticsearch: capture body for \_msearch, template and rollup search {pull}470[#470] 279 - Ended Transactions/Spans may now be used as parents {pull}478[#478] 280 - Introduce apm.DetachedContext for async/fire-and-forget trace propagation {pull}481[#481] 281 - module/apmechov4: add a copy of apmecho supporting echo/v4 {pull}477[#477] 282 283 [[release-notes-1.2.0]] 284 ==== 1.2.0 - 2019/01/17 285 286 https://github.com/elastic/apm-agent-go/releases/tag/v1.2.0[View release] 287 288 - Add "transaction.sampled" to errors {pull}410[#410] 289 - Enforce license header in source files with go-licenser {pull}411[#411] 290 - module/apmot: ignore "follows-from" span references {pull}414[#414] 291 - module/apmot: report error log records {pull}415[#415] 292 - Introduce `ELASTIC_APM_CAPTURE_HEADERS` to control HTTP header capture {pull}418[#418] 293 - module/apmzap: introduce zap log correlation and exception-tracking hook {pull}426[#426] 294 - type Error implements error interface {pull}399[#399] 295 - Add "transaction.type" to errors {pull}433[#433] 296 - Added instrumentation-specific Go modules (i.e. one for each package under apm/module) {pull}405[#405] 297 298 [[release-notes-1.1.3]] 299 ==== 1.1.3 - 2019/01/06 300 301 https://github.com/elastic/apm-agent-go/releases/tag/v1.1.3[View release] 302 303 - Remove the `agent.*` metrics {pull}407[#407] 304 - Add support for new github.com/pkg/errors.Frame type {pull}409[#409] 305 306 [[release-notes-1.1.2]] 307 ==== 1.1.2 - 2019/01/03 308 309 https://github.com/elastic/apm-agent-go/releases/tag/v1.1.2[View release] 310 311 - Fix data race between Tracer.Active and Tracer.loop {pull}406[#406] 312 313 [[release-notes-1.1.1]] 314 ==== 1.1.1 - 2018/12/13 315 316 https://github.com/elastic/apm-agent-go/releases/tag/v1.1.1[View release] 317 318 - CPU% metrics are now correctly in the range [0,1] 319 320 [[release-notes-1.1.0]] 321 ==== 1.1.0 - 2018/12/12 322 323 https://github.com/elastic/apm-agent-go/releases/tag/v1.1.0[View release] 324 325 - Stop pooling Transaction/Span/Error, introduce internal pooled objects {pull}319[#319] 326 - Enable metrics collection with default interval of 30s {pull}322[#322] 327 - `ELASTIC_APM_SERVER_CERT` enables server certificate pinning {pull}325[#325] 328 - Add Docker container ID to metadata {pull}330[#330] 329 - Added distributed trace context propagation to apmgrpc {pull}335[#335] 330 - Introduce `Span.Subtype`, `Span.Action` {pull}332[#332] 331 - apm.StartSpanOptions fixed to stop ignoring options {pull}326[#326] 332 - Add Kubernetes pod info to metadata {pull}342[#342] 333 - module/apmsql: don't report driver.ErrBadConn, context.Canceled (#346, #348) 334 - Added ErrorLogRecord.Error field, for associating an error value with a log record {pull}380[#380] 335 - module/apmlogrus: introduce logrus exception-tracking hook, and log correlation {pull}381[#381] 336 - module/apmbeego: introduce Beego instrumentation module {pull}386[#386] 337 - module/apmhttp: report status code for client spans {pull}388[#388] 338 339 [[release-notes-1.0.0]] 340 ==== 1.0.0 - 2018/11/14 341 342 https://github.com/elastic/apm-agent-go/releases/tag/v1.0.0[View release] 343 344 - Implement v2 intake protocol {pull}180[#180] 345 - Unexport Transaction.Timestamp and Span.Timestamp {pull}207[#207] 346 - Add jitter (+/-10%) to backoff on transport error {pull}212[#212] 347 - Add support for span tags {pull}213[#213] 348 - Require units for size configuration {pull}223[#223] 349 - Require units for duration configuration {pull}211[#211] 350 - Add support for multiple server URLs with failover {pull}233[#233] 351 - Add support for mixing OpenTracing spans with native transactions/spans {pull}235[#235] 352 - Drop SetHTTPResponseHeadersSent and SetHTTPResponseFinished methods from Context {pull}238[#238] 353 - Stop setting custom context (gin.handler) in apmgin {pull}238[#238] 354 - Set response context in errors reported by web modules {pull}238[#238] 355 - module/apmredigo: introduce gomodule/redigo instrumentation {pull}248[#248] 356 - Update Sampler interface to take TraceContext {pull}243[#243] 357 - Truncate SQL statements to a maximum of 10000 chars, all other strings to 1024 (#244, #276) 358 - Add leading slash to URLs in transaction/span context {pull}250[#250] 359 - Add `Transaction.Context` method for setting framework {pull}252[#252] 360 - Timestamps are now reported as usec since epoch, spans no longer use "start" offset {pull}257[#257] 361 - `ELASTIC_APM_SANITIZE_FIELD_NAMES` and `ELASTIC_APM_IGNORE_URLS` now use wildcard matching {pull}260[#260] 362 - Changed top-level package name to "apm", and canonical import path to "github.com/waldiirawan/apm-agent-go" {pull}202[#202] 363 - module/apmrestful: introduce emicklei/go-restful instrumentation {pull}270[#270] 364 - Fix panic handling in web instrumentations {pull}273[#273] 365 - Migrate internal/fastjson to go.elastic.co/fastjson {pull}275[#275] 366 - Report all HTTP request/response headers {pull}280[#280] 367 - Drop Context.SetCustom {pull}284[#284] 368 - Reuse memory for tags {pull}286[#286] 369 - Return a more helpful error message when /intake/v2/events 404s, to detect old servers {pull}290[#290] 370 - Implement test service for w3c/distributed-tracing test harness {pull}293[#293] 371 - End HTTP client spans on response body closure {pull}289[#289] 372 - module/apmgrpc requires Go 1.9+ {pull}300[#300] 373 - Invalid tag key characters are replaced with underscores {pull}308[#308] 374 - `ELASTIC_APM_LOG_FILE` and `ELASTIC_APM_LOG_LEVEL` introduced {pull}313[#313] 375 376 [[release-notes-0.x]] 377 === Go Agent version 0.x 378 379 [[release-notes-0.5.2]] 380 ==== 0.5.2 - 2018/09/19 381 382 https://github.com/elastic/apm-agent-go/releases/tag/v0.5.2[View release] 383 384 - Fixed premature Span.End() in apmgorm callback, causing a data-race with captured errors {pull}229[#229] 385 386 [[release-notes-0.5.1]] 387 ==== 0.5.1 - 2018/09/05 388 389 https://github.com/elastic/apm-agent-go/releases/tag/v0.5.1[View release] 390 391 - Fixed a bug causing error stacktraces and culprit to sometimes not be set {pull}204[#204] 392 393 [[release-notes-0.5.0]] 394 ==== 0.5.0 - 2018/08/27 395 396 https://github.com/elastic/apm-agent-go/releases/tag/v0.5.0[View release] 397 398 - `ELASTIC_APM_SERVER_URL` now defaults to "http://localhost:8200" {pull}122[#122] 399 - `Transport.SetUserAgent` method added, enabling the User-Agent to be set programatically {pull}124[#124] 400 - Inlined functions are now properly reported in stacktraces {pull}127[#127] 401 - Support for the experimental metrics API added {pull}94[#94] 402 - module/apmsql: SQL is parsed to generate more useful span names {pull}129[#129] 403 - Basic vgo module added {pull}136[#136] 404 - module/apmhttprouter: added a wrapper type for `httprouter.Router` to simplify adding routes {pull}140[#140] 405 - Add `Transaction.Context` methods for setting user IDs {pull}144[#144] 406 - module/apmgocql: new instrumentation module, providing an observer for gocql {pull}148[#148] 407 - Add `ELASTIC_APM_SERVER_TIMEOUT` config {pull}157[#157] 408 - Add `ELASTIC_APM_IGNORE_URLS` config {pull}158[#158] 409 - module/apmsql: fix a bug preventing errors from being captured {pull}160[#160] 410 - Introduce `Tracer.StartTransactionOptions`, drop variadic args from `Tracer.StartTransaction` {pull}165[#165] 411 - module/apmgorm: introduce GORM instrumentation module (#169, #170) 412 - module/apmhttp: record outgoing request URLs in span context {pull}172[#172] 413 - module/apmot: introduce OpenTracing implementation {pull}173[#173] 414 415 [[release-notes-0.4.0]] 416 ==== 0.4.0 - 2018/06/17 417 418 https://github.com/elastic/apm-agent-go/releases/tag/v0.4.0[View release] 419 420 First release of the Go agent for Elastic APM