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