Opentelemetry-js: Minimum NodeJS version is 8.5.0 instead 8.0.0

Created on 21 Jan 2020  路  17Comments  路  Source: open-telemetry/opentelemetry-js

What version of OpenTelemetry are you using?

0.3.2

What version of Node are you using?

<8.5.0

What did you do?

create a Span (e.g. via example basic-tracer-node)

What did you expect to see?

it should work

What did you see instead?

crash because of Error: Cannot find module 'perf_hooks'

Additional context

perf_hooks module was added in 8.5.0 - see https://nodejs.org/docs/latest-v13.x/api/perf_hooks.html

Maybe minimum NodeJS version should be bumped to 8.5.0 - or even 10.0.0.
I don't expect it's really worth to write a polyfill as Node.JS 8 has reached EOL.

Agreed Discussion bug

Most helpful comment

@mayurkale22 @dyladan I would like to pick this up if its alright with yall

All 17 comments

Do we bump to support only 10.0.0 directly or update to 8.5.0 ?

is there some statistics about what is running currently ? You can still push serverless functions to Google cloud with node 8 and node 10 is in beta ^^.

I think we can support 8 since the tests run on it and it is not so much of a burden. I think we should update the node 8 tests to run using the _minimum_ version, instead of the _latest_ version as they do right now.

Some numbers from our side:
NodeJs 8: 38.6%
NodeJs 10: 54.4%
NodeJs 12: 9.8%
Since ~ 09.2019 we see more Node.js 10 then Node.Js 8.
NodeJs 12 started to get used in significant amount since 10.2019 (most likely as it is marked as LTS since this time)

I'm for keeping node 8 and set 8.5.0.

@Flarna can you provide more detailed statistics on how many of the node8 users are using versions older than 8.5? ~40% is a large number of users

Around 5% of the NodeJs 8 processes seen use <8.5

@mayurkale22 @open-telemetry/javascript-approvers given that over 35% of @Flarna's users are using node8 >=8.5, and under 2% are using versions of node8 < 8.5, I think the best course of action is to change our supported minimum version to 8.5. Furthermore, we should modify the circle tests to use node 8.5 rather than node latest so that we can be sure we are actually targeting what we claim to be targeting.

also packages (package.json file) should have engines field to >=8.5

This is the Node Releases, Node 8 is EOL after Jan 2020:
Screen Shot 2020-01-23 at 10 33 18 AM

I am up changing minimum supported version to 8.5.

It may be EOL but it is still the used by a very large number of users, including being the default node runtime on some serverless platforms.

@mayurkale22 @dyladan I would like to pick this up if its alright with yall

@Flarna have you seen any drop in node 8 customers since EOL?

Current state:
Node 8: ~30% (~3.6% <8.5)
Node 10: ~47%
Node 12: ~19%
Node 12 is increasing, Node 8 is slightly going down.

I would not care much about node <8.5. First of all the number is low and besides that I'm quite sure that the at last most processes using old versions have not been changed/restarted for a long time.
Whoever introduces OTel has to touch he app and restart it. At this time it's quite common to revisit also dependencies and the node version used.

30% is still a large portion of users. I think 8.5.0 is still a decent minimum. The tests are still running against 8 latest. I'll update circle to run against 8.5

Yes, node 8 seems to be longer alive then expected... But as mentioned the concrete minor version is maybe not that important.
For whatever reason it seems that 8.9 and 8.11 are the most popular.

Hmm so maybe we're ok with only testing on 8 latest since it is unsupported anyways. No need to overcomplicate

Was this page helpful?
0 / 5 - 0 ratings