Skip to content

Commit

Permalink
Merge branch 'main' into logs/internal-state
Browse files Browse the repository at this point in the history
  • Loading branch information
pichlermarc authored Sep 20, 2023
2 parents 91ecbaf + 1a8652a commit 15a9d00
Show file tree
Hide file tree
Showing 231 changed files with 4,330 additions and 1,210 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
if: ${{ !contains(github.event.pull_request.labels.*.name, 'dependencies') && !contains(github.event.pull_request.labels.*.name, 'Skip Changelog')}}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Check for CHANGELOG changes
run: |
Expand Down
16 changes: 4 additions & 12 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,17 @@ name: "CodeQL Analysis"

on:
workflow_dispatch:
schedule:
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
- cron: '30 1 * * *'
push:
branches: [ main ]
pull_request:

jobs:
CodeQL-Build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
with:
node-version: '16'

- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Lint changelog file
uses: avto-dev/markdown-lint@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/peer-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
image: node:20
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Install lerna
run: npm install -g lerna
Expand Down
30 changes: 23 additions & 7 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,18 @@ jobs:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node_version }}

- run: npm install -g npm@latest
if: ${{ matrix.node_version == '18' || matrix.node_version == '20' }}

# [email protected] drops support for Node.js v14 and v16
- run: npm install -g npm@"<10.0.0"
if: ${{ matrix.node_version == '14' || matrix.node_version == '16' }}

- name: restore lerna
id: cache
Expand All @@ -41,6 +46,10 @@ jobs:
experimental/packages/*/package-lock.json
key: node-tests-${{ runner.os }}-${{ matrix.node_version }}-${{ hashFiles('package.json', 'packages/*/package.json', 'experimental/packages/*/package.json') }}-04292022

# temporary fix for https://github.com/nrwl/nx/issues/19022
- run: npm install --save-dev [email protected] @nx/[email protected]
if: ${{ matrix.node_version == '14' }}

- name: Bootstrap
run: |
npm install --ignore-scripts
Expand All @@ -66,11 +75,11 @@ jobs:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
node-version: '16'
node-version: '18'

- run: npm install -g npm@latest

Expand Down Expand Up @@ -98,14 +107,16 @@ jobs:
npm run compile
- name: Unit tests
env:
NODE_OPTIONS: --openssl-legacy-provider
run: npm run test
browser-tests:
runs-on: ubuntu-latest
env:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
Expand Down Expand Up @@ -143,7 +154,7 @@ jobs:
NPM_CONFIG_UNSAFE_PERM: true
steps:
- name: Checkout
uses: actions/checkout@v3.5.3
uses: actions/checkout@v4.0.0
- uses: actions/setup-node@v3
with:
node-version: 16
Expand Down Expand Up @@ -185,7 +196,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
Expand All @@ -201,4 +212,9 @@ jobs:
- name: Test
working-directory: ./api
run: npm test
# running test:eol as node 8 is not supported anymore by the version of nyc we use, as we don't report coverage
# for this step we leave it out.
# Details: nyc requires istanbul-lib-report, which silently dropped support for Node.js v8 when going from
# 3.0.0 to 3.0.1 by requiring make-dir@^4.0.0 to fix https://github.com/advisories/GHSA-c2qf-rxjj-qqgw.
# make-dir does not support Node.js v8 anymore.
run: npm run test:eol
2 changes: 1 addition & 1 deletion .github/workflows/w3c-integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
Expand Down
1 change: 0 additions & 1 deletion .nycrc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
"build/**/*.*",
"src/index.ts",
"src/platform/**/index.ts",
"src/platform/browser/*.ts",
"src/version.ts",
"test/**/*.*",
".eslintrc.js",
Expand Down
58 changes: 50 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,65 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/

### :rocket: (Enhancement)

* feat(exporter-metrics-otlp-*)!: add LowMemory metrics temporality preference [#3915](https://github.com/open-telemetry/opentelemetry-js/pull/3915)
* Breaking: From now on `AggregationTemporalityPreference` has to be used instead of `AggregationTemporality` when configuring the exporter.
* Adds support for [LowMemory temporality preference](https://github.com/open-telemetry/opentelemetry-specification/blob/f09624bb97e9be3be259733b93be507df18927bd/specification/metrics/sdk_exporters/otlp.md#additional-configuration)
* Adds support for `lowmemory` in `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE`
### :bug: (Bug Fix)

### :books: (Refine Doc)

### :house: (Internal)

* test: added a performance benchmark test for span creation [#4105](https://github.com/open-telemetry/opentelemetry-js/pull/4105)

## 1.17.0

### :bug: (Bug Fix)

* Revert "feat(api): add attributes argument to recordException API [#4071](https://github.com/open-telemetry/opentelemetry-js/pull/4071)"
* This feature was an unintentional breaking change introduced with API 1.5.0
* This PR updates all SDK packages to allow API 1.6.0, where this change has been reverted.

## 1.16.0

### :rocket: (Enhancement)

* feat(sdk-metrics): implement MetricProducer specification [#4007](https://github.com/open-telemetry/opentelemetry-js/pull/4007)
* feat: update PeriodicExportingMetricReader and PrometheusExporter to accept optional metric producers [#4077](https://github.com/open-telemetry/opentelemetry-js/pull/4077) @aabmass

### :bug: (Bug Fix)

* fix(exporter-zipkin): rounding duration to the nearest int to be compliant with zipkin protocol [#4064](https://github.com/open-telemetry/opentelemetry-js/pull/4064) @n0cloud
* fix(sdk-metrics): metric names should be case-insensitive

### :books: (Refine Doc)

* docs(guidelines): add dependencies guidelines [#4040](https://github.com/open-telemetry/opentelemetry-js/pull/4040)

## 1.15.2

### :bug: (Bug Fix)

* fix(core): stop rounding to nearest int in hrTimeTo*seconds() functions [#4014](https://github.com/open-telemetry/opentelemetry-js/pull/4014/) @aabmass
* fix(sdk-metrics): ignore invalid metric values [#3988](https://github.com/open-telemetry/opentelemetry-js/pull/3988) @legendecas
* fix(core): add baggage support for values containing an equals sign [#3975](https://github.com/open-telemetry/opentelemetry-js/pull/3975) @krosenk729

## 1.15.1

### :bug: (Bug Fix)

* Revert "feat(minification): Add noEmitHelpers, importHelpers and tslib as a dependency (#3914)"
[#4011](https://github.com/open-telemetry/opentelemetry-js/pull/4011) @dyladan

## 1.15.0

### :bug: (Bug Fix)

* fix(opentelemetry-exporter-prometheus): Update default PrometheusExporter to not append a timestamp to match the text based exposition format [#3961](https://github.com/open-telemetry/opentelemetry-js/pull/3961) @JacksonWeber
* fix(sdk-metrics): Update default Histogram's boundary to match OTEL's spec [#3893](https://github.com/open-telemetry/opentelemetry-js/pull/3893/) @chigia001
* fix(sdk-metrics): preserve startTime for cumulative ExponentialHistograms [#3934](https://github.com/open-telemetry/opentelemetry-js/pull/3934/) @aabmass

### :books: (Refine Doc)
* fix(sdk-trace-web): add secureConnectionStart to https only [#3879](https://github.com/open-telemetry/opentelemetry-js/pull/3879) @Abinet18

### :house: (Internal)

* feat(minification): [Minification] Add noEmitHelpers, importHelpers and tslib as a dependency [#3913](https://github.com/open-telemetry/opentelemetry-js/issues/3913)
* feat(minification): [Minification] Add noEmitHelpers, importHelpers and tslib as a dependency [#3913](https://github.com/open-telemetry/opentelemetry-js/issues/3913) @MSNev

## 1.14.0

Expand All @@ -42,7 +85,6 @@ For experimental package changes, see the [experimental CHANGELOG](experimental/

### :bug: (Bug Fix)

* fix(sdk-trace-web): add secureConnectionStart to https only [#3879](https://github.com/open-telemetry/opentelemetry-js/pull/3879) @Abinet18
* fix(http-instrumentation): stop listening to `request`'s `close` event once it has emitted `response` [#3625](https://github.com/open-telemetry/opentelemetry-js/pull/3625) @SimenB
* fix(sdk-node): fix initialization in bundled environments by not loading @opentelemetry/exporter-jaeger [#3739](https://github.com/open-telemetry/opentelemetry-js/pull/3739) @pichlermarc

Expand Down
71 changes: 43 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

## About this project

This is the JavaScript version of [OpenTelemetry](https://opentelemetry.io/), a framework for collecting traces and metrics from applications.
This is the JavaScript version of [OpenTelemetry](https://opentelemetry.io/), a framework for collecting traces, metrics, and logs from applications.

## Quick Start

Expand Down Expand Up @@ -109,24 +109,29 @@ If you are a library author looking to build OpenTelemetry into your library, pl

## Supported Runtimes

| Platform Version | Supported |
| ------------------- | ----------------------------------------------- |
| Node.JS `v18` | |
| Node.JS `v16` | |
| Node.JS `v14` | |
| Older Node Versions | See [Node Support](#node-support) |
| Web Browsers | See [Browser Support](#browser-support) below |
| Platform Version | Supported |
|---------------------|-----------------------------------------------|
| Node.JS `v18` | :heavy_check_mark: |
| Node.JS `v16` | :heavy_check_mark: |
| Node.JS `v14` | :heavy_check_mark: |
| Older Node Versions | See [Node Support](#node-support) |
| Web Browsers | See [Browser Support](#browser-support) below |

### Node Support

Only Node.js Active or Maintenance LTS versions are supported.
Previous versions of node *may* work, but they are not tested by OpenTelemetry and they are not guaranteed to work.
Please note that versions of Node.JS v8 prior to `v8.12.0` will NOT work, because OpenTelemetry Node depends on the `perf_hooks` module introduced in `v8.5.0` and `performance.timeOrigin` that is set correctly starting in `v8.12.0`.
Note that versions of Node.JS v8 prior to `v8.12.0` will NOT work, because OpenTelemetry Node depends on the
`perf_hooks` module introduced in `v8.5.0` and `performance.timeOrigin` that is set correctly starting in `v8.12.0`.

### Browser Support

Automated browser tests are run in the latest version of Headless Chrome.
There is currently no list of officially supported browsers, but OpenTelemetry is developed using standard web technologies with wide support and should work in currently supported versions of major browsers.
> [!IMPORTANT]
> Client instrumentation for the browser is **experimental** and mostly **unspecified**. If you are interested in
> helping out, get in touch with the [Client Instrumentation SIG][client-instrumentation-sig].
There is currently no list of officially supported browsers. OpenTelemetry is developed using standard web
technologies and aims to work in currently supported versions of major browsers.

## Package Version Compatibility

Expand All @@ -136,19 +141,27 @@ There may also be API packages for experimental signals in the experimental dire
All stable packages are released with the same version, and all experimental packages are released with the same version.
The below table describes which versions of each set of packages are expected to work together.

| API | Stable Packages | Experimental Packages |
| ----- | --------------- | --------------------- |
| 1.3.x | 1.9.x | 0.35.x |
| 1.3.x | 1.8.x | 0.34.x |
| 1.2.x | 1.7.x | 0.33.x |
| 1.2.x | 1.6.x | 0.32.x |
| 1.1.x | 1.5.x | 0.31.x |
| 1.1.x | 1.4.x | 0.30.x |
| 1.1.x | 1.3.x | 0.29.x |
| 1.1.x | 1.2.x | 0.29.x |
| 1.1.x | 1.1.x | 0.28.x |
| 1.0.x | 1.0.x | 0.27.x |
| 1.0.x | 1.0.x | 0.26.x |
| Stable Packages | Experimental Packages |
|-----------------------------------------------------------------|-----------------------|
| 1.17.x | 0.43.x |
| 1.16.x | 0.42.x |
| 1.15.x | 0.41.x |
| 1.14.x | 0.40.x |
| 1.13.x | 0.39.x |
| 1.12.x | 0.38.x |
| 1.11.x | 0.37.x |
| 1.10.x | 0.36.x |
| 1.9.x | 0.35.x |
| 1.8.x (this and later versions require API >=1.3.0 for metrics) | 0.34.x |
| 1.7.x | 0.33.x |
| 1.6.x | 0.32.x |
| 1.5.x | 0.31.x |
| 1.4.x | 0.30.x |
| 1.3.x | 0.29.x |
| 1.2.x | 0.29.x |
| 1.1.x | 0.28.x |
| 1.0.x | 0.27.x |
| 1.0.x (this and later versions require API >=1.0.0 for traces) | 0.26.x |

## Versioning

Expand Down Expand Up @@ -177,7 +190,7 @@ We have a weekly SIG meeting! See the [community page](https://github.com/open-t

#### Maintainers ([@open-telemetry/js-maintainers](https://github.com/orgs/open-telemetry/teams/javascript-maintainers))

- [Amir Blum](https://github.com/blumamir), Aspecto
- [Amir Blum](https://github.com/blumamir), Keyval
- [Chengzhong Wu](https://github.com/legendecas), Alibaba
- [Daniel Dyla](https://github.com/dyladan), Dynatrace
- [Marc Pichler](https://github.com/pichlermarc), Dynatrace
Expand All @@ -190,13 +203,10 @@ We have a weekly SIG meeting! See the [community page](https://github.com/open-t
- [Haddas Bronfman](https://github.com/haddasbronfman), Cisco
- [Hector Hernandez](https://github.com/hectorhdzg), Microsoft
- [Jamie Danielson](https://github.com/JamieDanielson), Honeycomb
- [John Bley](https://github.com/johnbley), Splunk
- [Mark Wolff](https://github.com/markwolff), Microsoft
- [Martin Kuba](https://github.com/martinkuba), Lightstep
- [Matthew Wear](https://github.com/mwear), LightStep
- [Naseem K. Ullah](https://github.com/naseemkullah), Transit
- [Neville Wylie](https://github.com/MSNev), Microsoft
- [Olivier Albertini](https://github.com/OlivierAlbertini), Ville de Montréal
- [Purvi Kanal](https://github.com/pkanal), Honeycomb
- [Svetlana Brennan](https://github.com/svetlanabrennan), New Relic

Expand All @@ -211,6 +221,9 @@ We have a weekly SIG meeting! See the [community page](https://github.com/open-t
- [Valentin Marchaud](https://github.com/vmarchaud), Maintainer
- [Brandon Gonzalez](https://github.com/bg451), LightStep, Approver
- [Roch Devost](https://github.com/rochdev), DataDog, Approver
- [John Bley](https://github.com/johnbley), Splunk, Approver
- [Mark Wolff](https://github.com/markwolff), Microsoft, Approver
- [Olivier Albertini](https://github.com/OlivierAlbertini), Ville de Montréal, Approver

*Find more about the emeritus role in [community repository](https://github.com/open-telemetry/community/blob/main/community-membership.md#emeritus-maintainerapprovertriager).*

Expand Down Expand Up @@ -552,6 +565,8 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
[up-for-grabs-issues]: https://github.com/open-telemetry/OpenTelemetry-js/issues?q=is%3Aissue+is%3Aopen+label%3Aup-for-grabs
[good-first-issues]: https://github.com/open-telemetry/OpenTelemetry-js/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22

[client-instrumentation-sig]: https://docs.google.com/document/d/16Vsdh-DM72AfMg_FIt9yT9ExEWF4A_vRbQ3jRNBe09w/edit

[docs]: https://open-telemetry.github.io/opentelemetry-js
[compliance-matrix]: https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md
[CONTRIBUTING]: https://github.com/open-telemetry/opentelemetry-js/blob/main/CONTRIBUTING.md
Expand Down
2 changes: 1 addition & 1 deletion api/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module.exports = {
"commonjs": true,
"shared-node-browser": true
},
...require('../eslint.config.js')
...require('../eslint.base.js')
}
Loading

0 comments on commit 15a9d00

Please sign in to comment.