Comments (3)
A workaround for this is to not consume the /experimental namespace in our SDK packages. We would simply redeclare any types. Given the above example, we would have to declare an ExperimentalContextManager type in the AsyncHooksContextManager package and rely on typescript to recognize the compatible types.
@dyladan and I talked about this offline yesterday:
We have to re-declare types from the API in the consuming packages anyway if the API is used as a peer dependency like >=1.0.0 <1.9.0
. As users can use the package with an older version of the API, it might happen that they don't contain the types API types we're using which breaks users (see #4260).
To implement something like this we can go a similar way as proposed by #4622.
from opentelemetry-js.
Overriding Methods
This requires the addition of a new experimental version of any API that needs experimental functionality. As an example, if we were going to experimentally change the behavior of the startSpan API, we would need to add a new method like experimentalStartSpan or similar because we can't override the existing API.
I think this may also be solvable by the same wrap()
-approach. If wrap()
is used we use the new behavior on the returned object in place of the old one.
Would you mind providing an example on which change would result in us having to change the API in such a way?
from opentelemetry-js.
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days.
from opentelemetry-js.
Related Issues (20)
- ConsoleSpanExporter not logging anything for Custom Spans for prebuilds HOT 3
- LogRecord discards attributes which are `instanceof Error` HOT 4
- propagator-aws-xray broken with GRPC? HOT 2
- (draft) [api] document best-practices and limitations
- Types returned by getMeter are not compatible HOT 2
- [instrumentation] hide `shimmer` types from the public API
- How to set `credentials: include`? If it cannot be done, please add an option to include Cookies for the Exporters.
- [instrumentation] research adding experimental features to `Instrumentation`, `InstrumentationBase`
- Can not use ESM support in lambda environment HOT 2
- @opentelemetry/semantic-conventions out of sync. E.g. 1.25.1 `http.user_agent` does not follow semantic conventions? HOT 4
- traceparent http header field is not extracted correctly when datadog agent also inserts it HOT 2
- [instrumentation] update "Instrumentation for ES Modules" documentation HOT 1
- How to determine Parent Span from a ReadableSpan, check if Parent Span is Remote?
- Unable to access to trace information using opentelemetry-js SDK + aws lambda layer HOT 2
- `HttpInstrumentation` does not create outgoing request span for `http.get` in ESM HOT 1
- Lamda Auto Instrumentation Causes -> Internal Server Error Due To Span not Ending HOT 2
- node http integration: ignoreIncomingRequests() option does not work HOT 2
- couchbase instrumentation doesn't not support?
- Logs Stabilization Plan HOT 1
- Update Typescript HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opentelemetry-js.