Open trentm opened 1 year ago
It looks like the only failures are in the "dev-server" parts of the tests.
Possibly changes for next@13.4.x as well now. See https://github.com/elastic/apm-agent-nodejs/pull/3331
Any update on this? We are running 13.4.8 and we a lot of unknown routes
Are there any plans for Next@14.x.x ? We are getting some issues for parsing URLs for transaction data.
We are running 13.4.8 and we a lot of unknown routes
and
Are there any plans for Next@14.x.x?
Currently we don't have an ETA for working on updated the Next instrumentation. The Next.js instrumentation has required depending on internal implementation details of the Next.js router that we've found can change subtle and/or significantly in minor versions -- which is mainly why the support has lagged.
A hope of mine is that Next.js's core support for OpenTelemetry -- https://nextjs.org/docs/app/building-your-application/optimizing/open-telemetry -- will be a better alternative. Has anyone listening on this issue has a chance to try this? It should be straightforward to use that and configure it with something like the following environment to have it send tracing data to an APM server:
ELASTIC_APM_SERVER_URL=...
ELASTIC_APM_SECRET_TOKEN=...
OTEL_EXPORTER_OTLP_ENDPOINT=$ELASTIC_APM_SERVER_URL
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer $ELASTIC_APM_SECRET_TOKEN"
However, I haven't had a chance to try it yet.
NextJS Open Telemetry would ofc be the best long-term solution. Perhaps Elastic and Vercel could work together here? I assume that both companies can benefit from that.
Next.js 13.3.0 broke our (experimental) instrumentation -- see the test failures on this dependabot PR: https://github.com/elastic/apm-agent-nodejs/pull/3257
(Similarly, next@13.2.0 broke our instrumentation not so long ago: https://github.com/elastic/apm-agent-nodejs/pull/3178)
This issue is to add support for next@13.3.0. In the interim, we will have a quick PR to change the version guard on Next.js instrumentation support to be on the minor version (
... <13.3.0
) rather than on the major version (... <14.0.0
) as is more typical of other instrumentations. (It makes some sense that our instrumentation is more brittle here, because we are digging into Next.js internal routing code that isn't very amenable to being instrumentation -- at least at the level that I tried for.)