-
Notifications
You must be signed in to change notification settings - Fork 878
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding support for mix&match pipelines #1954
Conversation
I think this is too complex, would avoid the "naming" altogether. |
One of the advantages that I saw in adopting named pipeline would have been enabling the implementation of one input, multiple outputs, similarly to On the user side, this simplifies the configuration since the pipeline requires to be defined only once. Besides the technical aspects, I also understand that it also comes down to how common such use case is so, I don't feel like pushing this idea too much. |
I feel most devs won't understand that. |
Pity but fair enough. I'll revert the changes related to the named pipelines in favor to a configuration like the following one, looks intuitive enough to me. const pino = require('pino')
const transport = pino.transport({
targets: [{
level: 'info',
target: 'pino-pretty' // must be installed separately
}, {
level: 'trace',
target: 'pino/file',
options: { destination: '/path/to/store/logs' }
}, {
pipeline: [{
target: 'pino-syslog' // must be installed separately
}, {
target: 'pino-socket' // must be installed separately
}]
}
]
})
pino(transport) |
- Implemented support for mixed target&pipeline definitions within `targets` in `transport.js` - Merged logic from both `worker.js` and `worker-pipeline.js` into `worker.js` - Fixed `pipeline.test.js` - Fixed docs to reflect changes above TODO: - Remove `worker-pipeline.js` - Fix `transport.js` to use only `worker.js` - Fix related docs - Fix UTs
- Updated docs to remove mentions of `worker-pipeline.js` - Fixed failing UTs - Fixed `transport.js` to use only `worker.js` also when `pipeline` is defined - Fixed `worker.js` to work properly when only `pipeline` is defined
Removing the Draft mark as the code is now in a more decent shape for some feedback. Besides the implementation of the support for pipelines illustrated above, I also thought to get rid of The following schema illustrates how the streams in
There're probably some naïve decisions here with impacts I don't see, for example pipelines defined via |
I would recommend:
|
Yes, that's something I wanted follow up a bit as I wasn't sure about the implications of logging level vs pipelines in this context. I'll read more about this. Thanks for the heads up. About the recommended changes:
There is actually one layer of
I drew the wrong schema, my bad.
Makes sense, will do. |
…en a single target or pipeline is defined
- A level can now be defined for pipelines defined inside 'targets' - Added UT in 'pipeline.test.js' to check expected behaviour with 'dedupe'
So
Now regarding this, I thought that we could introduce the optional level property to pipeline definitions as well, in this way |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Sorry. I didn't have a chance over the weekend. I was going to try and review today. |
Thank you 🥳 |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pino](https://getpino.io) ([source](https://togithub.com/pinojs/pino)) | [`^8.18.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/pino/8.21.0/9.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/pino/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pino/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pino/8.21.0/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pino/8.21.0/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pinojs/pino (pino)</summary> ### [`v9.1.0`](https://togithub.com/pinojs/pino/releases/tag/v9.1.0) [Compare Source](https://togithub.com/pinojs/pino/compare/v9.0.0...v9.1.0) #### What's Changed - fix(transport-stream): Fix import error when using pkg with node v20 by [@​nagyszabi](https://togithub.com/nagyszabi) in [https://github.com/pinojs/pino/pull/1949](https://togithub.com/pinojs/pino/pull/1949) - Update LTS doc by [@​jsumners](https://togithub.com/jsumners) in [https://github.com/pinojs/pino/pull/1955](https://togithub.com/pinojs/pino/pull/1955) - Update pino types for browser.formatters by [@​KatelynKim](https://togithub.com/KatelynKim) in [https://github.com/pinojs/pino/pull/1946](https://togithub.com/pinojs/pino/pull/1946) - add node v22 to CI by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1953](https://togithub.com/pinojs/pino/pull/1953) - Add Platformatic to sponsors by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1956](https://togithub.com/pinojs/pino/pull/1956) - Update h3 example by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1968](https://togithub.com/pinojs/pino/pull/1968) - Support file URLs when configuring multiple transports by [@​haines](https://togithub.com/haines) in [https://github.com/pinojs/pino/pull/1961](https://togithub.com/pinojs/pino/pull/1961) - Adding support for mix\&match pipelines by [@​dbacarel](https://togithub.com/dbacarel) in [https://github.com/pinojs/pino/pull/1954](https://togithub.com/pinojs/pino/pull/1954) - apply serializers to args once before asObject or transmit by [@​emmyakin](https://togithub.com/emmyakin) in [https://github.com/pinojs/pino/pull/1971](https://togithub.com/pinojs/pino/pull/1971) - build(deps-dev): bump pino-pretty from 10.3.1 to 11.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1933](https://togithub.com/pinojs/pino/pull/1933) - build(deps): bump sonic-boom from 3.8.1 to 4.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1960](https://togithub.com/pinojs/pino/pull/1960) - build(deps): bump pino-std-serializers from 6.2.2 to 7.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1957](https://togithub.com/pinojs/pino/pull/1957) - build(deps-dev): bump tsd from 0.30.7 to 0.31.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1937](https://togithub.com/pinojs/pino/pull/1937) - build(deps): bump actions/dependency-review-action from 3 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1894](https://togithub.com/pinojs/pino/pull/1894) - build(deps): bump pnpm/action-setup from 2.4.0 to 3.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1913](https://togithub.com/pinojs/pino/pull/1913) - Drop yarn support and update pnpm by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1972](https://togithub.com/pinojs/pino/pull/1972) - build(deps): bump thread-stream from 2.7.0 to 3.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1959](https://togithub.com/pinojs/pino/pull/1959) #### New Contributors - [@​nagyszabi](https://togithub.com/nagyszabi) made their first contribution in [https://github.com/pinojs/pino/pull/1949](https://togithub.com/pinojs/pino/pull/1949) - [@​haines](https://togithub.com/haines) made their first contribution in [https://github.com/pinojs/pino/pull/1961](https://togithub.com/pinojs/pino/pull/1961) - [@​emmyakin](https://togithub.com/emmyakin) made their first contribution in [https://github.com/pinojs/pino/pull/1971](https://togithub.com/pinojs/pino/pull/1971) **Full Changelog**: pinojs/pino@v9.0.0...v9.1.0 ### [`v9.0.0`](https://togithub.com/pinojs/pino/compare/v8.21.0...4f8ea32aa69ec94b2fb5561716a7701aec991ce7) [Compare Source](https://togithub.com/pinojs/pino/compare/v8.21.0...v9.0.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rustymotors/server). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjM1MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [pino](https://getpino.io) ([source](https://togithub.com/pinojs/pino)) | [`8.21.0` -> `9.3.1`](https://renovatebot.com/diffs/npm/pino/8.21.0/9.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/pino/9.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pino/9.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pino/8.21.0/9.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pino/8.21.0/9.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pinojs/pino (pino)</summary> ### [`v9.3.1`](https://togithub.com/pinojs/pino/releases/tag/v9.3.1) [Compare Source](https://togithub.com/pinojs/pino/compare/v9.3.0...v9.3.1) **Full Changelog**: pinojs/pino@v9.3.0...v9.3.1 ### [`v9.3.0`](https://togithub.com/pinojs/pino/compare/v9.2.0...92f2cee98e83d3f864b228a6e1dc29a31e54ba49) [Compare Source](https://togithub.com/pinojs/pino/compare/v9.2.0...v9.3.0) ### [`v9.2.0`](https://togithub.com/pinojs/pino/releases/tag/v9.2.0) [Compare Source](https://togithub.com/pinojs/pino/compare/v9.1.0...v9.2.0) #### What's Changed - shallow clone target options by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1973](https://togithub.com/pinojs/pino/pull/1973) - add logger instance as third parameter by [@​emmyakin](https://togithub.com/emmyakin) in [https://github.com/pinojs/pino/pull/1977](https://togithub.com/pinojs/pino/pull/1977) - use boolean flag to ensure serializers are applied once by [@​emmyakin](https://togithub.com/emmyakin) in [https://github.com/pinojs/pino/pull/1976](https://togithub.com/pinojs/pino/pull/1976) - suppport messageKey in pino/browser by [@​emmyakin](https://togithub.com/emmyakin) in [https://github.com/pinojs/pino/pull/1980](https://togithub.com/pinojs/pino/pull/1980) - Fixing browser side child log issue ([#​960](https://togithub.com/pinojs/pino/issues/960)) child level can now be set at cr… by [@​stevel032](https://togithub.com/stevel032) in [https://github.com/pinojs/pino/pull/1986](https://togithub.com/pinojs/pino/pull/1986) #### New Contributors - [@​stevel032](https://togithub.com/stevel032) made their first contribution in [https://github.com/pinojs/pino/pull/1986](https://togithub.com/pinojs/pino/pull/1986) **Full Changelog**: pinojs/pino@v9.1.0...v9.2.0 ### [`v9.1.0`](https://togithub.com/pinojs/pino/releases/tag/v9.1.0) [Compare Source](https://togithub.com/pinojs/pino/compare/v9.0.0...v9.1.0) #### What's Changed - fix(transport-stream): Fix import error when using pkg with node v20 by [@​nagyszabi](https://togithub.com/nagyszabi) in [https://github.com/pinojs/pino/pull/1949](https://togithub.com/pinojs/pino/pull/1949) - Update LTS doc by [@​jsumners](https://togithub.com/jsumners) in [https://github.com/pinojs/pino/pull/1955](https://togithub.com/pinojs/pino/pull/1955) - Update pino types for browser.formatters by [@​KatelynKim](https://togithub.com/KatelynKim) in [https://github.com/pinojs/pino/pull/1946](https://togithub.com/pinojs/pino/pull/1946) - add node v22 to CI by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1953](https://togithub.com/pinojs/pino/pull/1953) - Add Platformatic to sponsors by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1956](https://togithub.com/pinojs/pino/pull/1956) - Update h3 example by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1968](https://togithub.com/pinojs/pino/pull/1968) - Support file URLs when configuring multiple transports by [@​haines](https://togithub.com/haines) in [https://github.com/pinojs/pino/pull/1961](https://togithub.com/pinojs/pino/pull/1961) - Adding support for mix\&match pipelines by [@​dbacarel](https://togithub.com/dbacarel) in [https://github.com/pinojs/pino/pull/1954](https://togithub.com/pinojs/pino/pull/1954) - apply serializers to args once before asObject or transmit by [@​emmyakin](https://togithub.com/emmyakin) in [https://github.com/pinojs/pino/pull/1971](https://togithub.com/pinojs/pino/pull/1971) - build(deps-dev): bump pino-pretty from 10.3.1 to 11.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1933](https://togithub.com/pinojs/pino/pull/1933) - build(deps): bump sonic-boom from 3.8.1 to 4.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1960](https://togithub.com/pinojs/pino/pull/1960) - build(deps): bump pino-std-serializers from 6.2.2 to 7.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1957](https://togithub.com/pinojs/pino/pull/1957) - build(deps-dev): bump tsd from 0.30.7 to 0.31.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1937](https://togithub.com/pinojs/pino/pull/1937) - build(deps): bump actions/dependency-review-action from 3 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1894](https://togithub.com/pinojs/pino/pull/1894) - build(deps): bump pnpm/action-setup from 2.4.0 to 3.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1913](https://togithub.com/pinojs/pino/pull/1913) - Drop yarn support and update pnpm by [@​mcollina](https://togithub.com/mcollina) in [https://github.com/pinojs/pino/pull/1972](https://togithub.com/pinojs/pino/pull/1972) - build(deps): bump thread-stream from 2.7.0 to 3.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/pinojs/pino/pull/1959](https://togithub.com/pinojs/pino/pull/1959) #### New Contributors - [@​nagyszabi](https://togithub.com/nagyszabi) made their first contribution in [https://github.com/pinojs/pino/pull/1949](https://togithub.com/pinojs/pino/pull/1949) - [@​haines](https://togithub.com/haines) made their first contribution in [https://github.com/pinojs/pino/pull/1961](https://togithub.com/pinojs/pino/pull/1961) - [@​emmyakin](https://togithub.com/emmyakin) made their first contribution in [https://github.com/pinojs/pino/pull/1971](https://togithub.com/pinojs/pino/pull/1971) **Full Changelog**: pinojs/pino@v9.0.0...v9.1.0 ### [`v9.0.0`](https://togithub.com/pinojs/pino/compare/v8.21.0...4f8ea32aa69ec94b2fb5561716a7701aec991ce7) [Compare Source](https://togithub.com/pinojs/pino/compare/v8.21.0...v9.0.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/redwoodjs/redwood). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjQzMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR wants to address the use-case of mix matching pipelines and targets, see discussion #1302.
Currently only
pipeline
ortargets
can be defined.As a stretch, the current prototype proposes to introduce support for named pipelines that can be referred within the definition of a target.
More details will follow
Update
The idea of named pipelines was abandoned.
This PR extends
targets
to support mixing in pipeline definitions within the array of transport configurationsExample: