A newer version is available. For the latest information, see the
current release documentation.
Go Agent version 1.x
editGo Agent version 1.x
edit1.15.0 - 2021/12/08
edit-
Deprecate
http.request.socket.encrypted
and stop recording it inmodule/apmhttp
,module/apmgrpc
andmodule/apmfiber
. #(1129) - Collect and send span destination service timing statistics about the dropped spans to the apm-server. #(1132)
- Experimental support to compress short exit spans into a composite span. Disabled by default. #(1134)
-
Discard exit spans shorter or equal than
ELASTIC_APM_EXIT_SPAN_MIN_DURATION
. Defaults to1ms
. #(1138) - module/apmprometheus: add support for mapping prometheus histograms. #(1145)
- Fixed a bug where errors in cloud metadata discovery could lead to the process aborting during initialisation #(1158)
- Fixed a data race related to HTTP request header sanitisation #(1159)
-
apm.CaptureError
,apm.Error.SetTransaction
, andapm.Error.SetSpan
will now set the associated transaction or span’s default outcome to "failure" #(1160)
1.14.0 - 2021/09/22
edit-
span: automatically infer
destination.service.resource
information when the span is an exit span and deprecatedestination.service.name
anddestination.service.type
#(1003) - module/apmhttp: add apmhttp.WithClientSpanType ClientOption to set the span type of http client requests #(1106)
- module/apmazure: introduce instrumentation module for Azure blob, queue, and file storage #(1109)
-
module/apmelasticsearch: propagete
Traceparent
andTracestate
headers to Elasticsearch #(1002) - module/apmfiber: introduce instrumentation module for Fiber web framework #(999)
- module/apmawssdkgo: fix a bug where the module would panic when an unsupported service is used #(1006)
-
module/apmfasthttp: report the correct HTTP Status Code instead of always reporting
200
#(1104)
1.13.1 - 2021/08/05
edit- Fix concurrency bugs in breakdown metrics and module/apmhttp.WithClientTrace #(997)
1.13.0 - 2021/07/28
edit- Prefer w3c traceparent header over legacy elastic-apm-traceparent #(963)
- Context.SetUsername now takes precedence over HTTP user info from Context.SetHTTPRequest #(973)
- module/apmhttp: fix a potential panic in WithClientTrace #(989)
- add support for go-restful v3 #(968)
- add fasthttp support #(957)
- module/apmgin: support multiple routes using the same handler #(983)
- add apm-server CA cert functionality #(982)
1.12.0 - 2021/05/25
edit- module/apmgrpc: fix status code to outcome mapping #(902)
- module/apmawssdkgo: add support for instrumenting s3 RPC calls #(927)
- module/apmawssdkgo: add support for instrumenting dynamodb RPC calls #(928)
- SpanContext.SetDestinationService is a no-op if either Name or Resource is empty #(931)
- module/apmawssdkgo: add support for instrumenting sqs RPC calls #(933)
- module/apmawssdkgo: add support for instrumenting sns RPC calls #(938)
- Parse "//" comments in SQL/CQL #(937)
- Fix CaptureError to capture the request body when ELASTIC_APM_CAPTURE_BODY is enabled #(906)
- module/apmgrpc: record underlying HTTP/2 context #(904)
- module/apmot: handle http.host tag as url.Host #(954)
- apm: add add ParentID methods to Span and Transaction #(956)
1.10.0 - 2021/01/20
edit1.9.0 - 2020/11/02
edit- module/apmgoredisv8: introduce new package to support go-redis v8 #(780)
- module/apmhttp: introduce httptrace client option #(788)
- module/apmsql: add support for database/sql/driver.Validator #(791)
-
Record sample rate on transactions and spans, propagate through
tracestate
#(804) - module/apmredigo: change redigo dependency to v1.8.2 #(807)
- Deprecate IGNORE_URLS, replace with TRANSACTION_IGNORE_URLS (#811)
- Tracer.Close now waits for the transport goroutine to end before returning #(816)
- Relax Kubernetes pod UID discovery rules #(819)
- Add transaction and span outcome #(820)
- Add cloud metadata, configurable with ELASTIC_APM_CLOUD_PROVIDER #(823)
- Round ELASTIC_APM_SAMPLING_RATE with 4 digits precision #(828)
- module/apmhttp: implement io.ReaderFrom in wrapped http.ResponseWriter #(830)
- Fixed Transaction.Discard so that it sets TransactionData to nil #(836)
- module/apmsql/pgxv4: add support for pgx driver #(831)
- module/apmgormv2: add support for gorm.io (GORM v2) #(825)
1.8.0 - 2020/05/06
edit1.7.0 - 2020/01/10
edit1.6.0 - 2019/11/17
edit- module/apmhttp: add WithClientRequestName option (#609)
- module/apmhttp: add WithPanicPropagation function (#611)
- module/apmgoredis: add Client.RedisClient (#613)
- Introduce apm.TraceFormatter, for formatting trace IDs (#635)
- Report error cause(s), add support for errors.Unwrap (#638)
-
Setting
ELASTIC_APM_TRANSACTION_MAX_SPANS
to 0 now disables all spans (#640) - module/apmzerolog: add Writer.MinLevel (#641)
- Introduce SetLabel and deprecate SetTag (#642)
-
Support central config for
ELASTIC_APM_CAPTURE_BODY
andELASTIC_APM_TRANSACTION_MAX_SPANS
(#648) - module/apmgorm: sql.ErrNoRows is no longer reported as an error (#645)
- Server URL path is cleaned/canonicalizsed in order to avoid 301 redirects (#658)
-
context.request.socket.remote_address
now reports the peer address (#662) - Experimental support for periodic CPU/heap profiling (#666)
- module/apmnegroni: introduce tracing Negroni middleware (#671)
- Unescape hyphens in k8s pod UIDs when the systemd cgroup driver is used (#672)
- Read and propagate the standard W3C "traceparent" header (#674)
1.5.0 - 2019/07/31
edit- Add Context.SetCustom (#581)
- Add support for extracting UUID-like container IDs (#577)
- Introduce transaction/span breakdown metrics (#564)
- Optimised HTTP request body capture (#592)
- Fixed transaction encoding to drop tags (and other context) for non-sampled transactions (#593)
- Introduce central config polling (#591)
- Fixed apmgrpc client interceptor, propagating trace context for non-sampled transactions (#602)
1.4.0 - 2019/06/20
edit- Update opentracing-go dependency to v1.1.0
- Update HTTP routers to return "<METHOD> unknown route" if route cannot be matched (#486)
- module/apmchi: introduce instrumentation for go-chi/chi router (#495)
- module/apmgoredis: introduce instrumentation for the go-redis/redis client (#505)
- module/apmsql: exposed the QuerySignature function (#515)
- module/apmgopg: introduce instrumentation for the go-pg/pg ORM (#516)
- module/apmmongo: set minimum Go version to Go 1.10 (#522)
- internal/sqlscanner: bug fix for multi-byte rune handling (#535)
- module/apmgrpc: added WithServerRequestIgnorer server option (#531)
-
Introduce
ELASTIC_APM_GLOBAL_LABELS
config (#539) -
module/apmgorm: register
row_query
callbacks (#532) -
Introduce
ELASTIC_APM_STACK_TRACE_LIMIT
config (#559) - Include agent name/version and Go version in User-Agent (#560)
-
Truncate
error.culprit
at 1024 chars (#561)
1.3.0 - 2019/03/20
edit- Rename "metricset.labels" to "metricset.tags" (#438)
-
Introduce
ELASTIC_APM_DISABLE_METRICS
to disable metrics with matching names (#439) - module/apmelasticsearch: introduce instrumentation for Elasticsearch clients (#445)
- module/apmmongo: introduce instrumentation for the MongoDB Go Driver (#452)
- Introduce ErrorDetailer interface (#453)
- module/apmhttp: add CloseIdleConnectons and CancelRequest to RoundTripper (#457)
- Allow specifying transaction (span) ID via TransactionOptions/SpanOptions (#463)
- module/apmzerolog: introduce zerolog log correlation and exception-tracking writer (#428)
- module/apmelasticsearch: capture body for \_msearch, template and rollup search (#470)
- Ended Transactions/Spans may now be used as parents (#478)
- Introduce apm.DetachedContext for async/fire-and-forget trace propagation (#481)
- module/apmechov4: add a copy of apmecho supporting echo/v4 (#477)
1.2.0 - 2019/01/17
edit- Add "transaction.sampled" to errors (#410)
- Enforce license header in source files with go-licenser (#411)
- module/apmot: ignore "follows-from" span references (#414)
- module/apmot: report error log records (#415)
-
Introduce
ELASTIC_APM_CAPTURE_HEADERS
to control HTTP header capture (#418) - module/apmzap: introduce zap log correlation and exception-tracking hook (#426)
- type Error implements error interface (#399)
- Add "transaction.type" to errors (#433)
- Added instrumentation-specific Go modules (i.e. one for each package under apm/module) (#405)
1.1.3 - 2019/01/06
edit1.1.0 - 2018/12/12
edit- Stop pooling Transaction/Span/Error, introduce internal pooled objects (#319)
- Enable metrics collection with default interval of 30s (#322)
-
ELASTIC_APM_SERVER_CERT
enables server certificate pinning (#325) - Add Docker container ID to metadata (#330)
- Added distributed trace context propagation to apmgrpc (#335)
-
Introduce
Span.Subtype
,Span.Action
(#332) - apm.StartSpanOptions fixed to stop ignoring options (#326)
- Add Kubernetes pod info to metadata (#342)
- module/apmsql: don’t report driver.ErrBadConn, context.Canceled (#346, #348)
- Added ErrorLogRecord.Error field, for associating an error value with a log record (#380)
- module/apmlogrus: introduce logrus exception-tracking hook, and log correlation (#381)
- module/apmbeego: introduce Beego instrumentation module (#386)
- module/apmhttp: report status code for client spans (#388)
1.0.0 - 2018/11/14
edit- Implement v2 intake protocol (#180)
- Unexport Transaction.Timestamp and Span.Timestamp (#207)
- Add jitter (+/-10%) to backoff on transport error (#212)
- Add support for span tags (#213)
- Require units for size configuration (#223)
- Require units for duration configuration (#211)
- Add support for multiple server URLs with failover (#233)
- Add support for mixing OpenTracing spans with native transactions/spans (#235)
- Drop SetHTTPResponseHeadersSent and SetHTTPResponseFinished methods from Context (#238)
- Stop setting custom context (gin.handler) in apmgin (#238)
- Set response context in errors reported by web modules (#238)
- module/apmredigo: introduce gomodule/redigo instrumentation (#248)
- Update Sampler interface to take TraceContext (#243)
- Truncate SQL statements to a maximum of 10000 chars, all other strings to 1024 (#244, #276)
- Add leading slash to URLs in transaction/span context (#250)
-
Add
Transaction.Context
method for setting framework (#252) - Timestamps are now reported as usec since epoch, spans no longer use "start" offset (#257)
-
ELASTIC_APM_SANITIZE_FIELD_NAMES
andELASTIC_APM_IGNORE_URLS
now use wildcard matching (#260) - Changed top-level package name to "apm", and canonical import path to "go.elastic.co/apm" (#202)
- module/apmrestful: introduce emicklei/go-restful instrumentation (#270)
- Fix panic handling in web instrumentations (#273)
- Migrate internal/fastjson to go.elastic.co/fastjson (#275)
- Report all HTTP request/response headers (#280)
- Drop Context.SetCustom (#284)
- Reuse memory for tags (#286)
- Return a more helpful error message when /intake/v2/events 404s, to detect old servers (#290)
- Implement test service for w3c/distributed-tracing test harness (#293)
- End HTTP client spans on response body closure (#289)
- module/apmgrpc requires Go 1.9+ (#300)
- Invalid tag key characters are replaced with underscores (#308)
-
ELASTIC_APM_LOG_FILE
andELASTIC_APM_LOG_LEVEL
introduced (#313)