Skip to content

Conversation

@facostaembrace
Copy link
Member

@facostaembrace facostaembrace commented Jul 30, 2024

Which problem is this PR solving?

A couple of months ago, my team (Embrace) and I were looking for an instrumentation library that creates telemetry data for React Native applications. However, we noticed there was nothing available that adhered to open source standards. We also noticed people in Stack Overflow was asking about something similar.
This instrumentation library exposes two components that can be implemented at the root of React Native applications to create telemetry data that tracks navigation changes for the most popular navigation approaches in this environment.
Instrumentation request here.

#1089

Short description of the changes

  • Introduce a new instrumentation library to kick off a React Native ecosystem.
  • Exposes two components: <NativeNavigationTracker /> that creates spans and track navigation changes for wix/react-native-navigation library, and <NavigationTracker /> that is meant to be used when the application handles the navigation using @react-navigation/native or expo-router.
  • Both components have the ability of adding a minimum set of configurations.
  • Both components receives a custom provider, but if it is not passed it can also create telemetry data using the global one.
  • Configuration for both allows to add static attributes for spans.

@facostaembrace facostaembrace requested a review from a team July 30, 2024 21:12
@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Jul 30, 2024

@facostaembrace facostaembrace changed the title feat(instrumentation-react-native-navigation) Adding new instrumentation library to track navigation changes for React Native apps feat:(instrumentation-react-native-navigation) Adding new instrumentation library to track navigation changes for React Native apps Jul 30, 2024
@facostaembrace facostaembrace force-pushed the instrumentation-react-native-navigation branch from 7899a94 to 42ac15b Compare July 30, 2024 21:23
@facostaembrace facostaembrace changed the title feat:(instrumentation-react-native-navigation) Adding new instrumentation library to track navigation changes for React Native apps feat(instrumentation-react-native-navigation): Adding new instrumentation library to track navigation changes for React Native apps Jul 30, 2024
@facostaembrace facostaembrace force-pushed the instrumentation-react-native-navigation branch from 42ac15b to cc3c154 Compare July 30, 2024 21:33
@facostaembrace
Copy link
Member Author

facostaembrace commented Jul 31, 2024

Fyi: still pending to submit the Instrumentation request that introduces this initiative.
Update: done (request here)

@facostaembrace facostaembrace force-pushed the instrumentation-react-native-navigation branch from cc3c154 to f71bc35 Compare August 1, 2024 17:01
@facostaembrace
Copy link
Member Author

So @facostaembrace - do you need another maintainer here to get this reviewed? If so I volunteer to help maintain this with you.

Hi @kndri ! I think I already have maintainers for this new package but all help is well received!
What I need now is an admin approving the workflows for running once again and then hitting the merge button.
But for sure you can take a look and provide feedback if you want!

Thanks for the interest!!

Copy link
Member

@JamieDanielson JamieDanielson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'd like to help keep this moving forward, and want to give you more leeway especially as this is 0.1.0 and it will be valuable to get feedback on how this works. This is the top requested feature in js-contrib.

@facostaembrace @jpmunz we'd like to add you to a triagers team and set a specific path in the CODEOWNERS path for you. We are working on this for other packages as well to ensure folks are pinged and assigned appropriately, as well as given the power to approve PRs (with the green check). To do this we need you to join the OpenTelemetry org.

I am working on some updated guidelines to add to the repo, but in the meantime please follow these guidelines in the community repo for member requirements.

@facostaembrace
Copy link
Member Author

@JamieDanielson I see in the Issue's template that I should mention two sponsors that "meet the sponsor requirements listed in the community membership guidelines". Am right assuming I can tag you + one person from the regular JS SIG meeting? (we can also discuss about this during tomorrow's meeting). Thanks!

"@types/react": "~18.2.0",
"@types/react-dom": "~18.2.0",
"@types/sinon": "10.0.18",
"amqplib": "0.8.0",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this used anywhere? 🤔

yarn add @opentelemetry/instrumentation-react-native-navigation @opentelemetry/api
```

## Usage
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be great to have a disclaimer here that react native is not fully supported yet by OTel JS.
I also wonder if we should add some build instructions. There are some caveats with things that currently don't work and there's no process in place to test if changes work in the core repo which may be something we should look into soon in order to give everyone a good experience.

"navigation",
"react-native",
"instrumentation",
"nodejs",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that's applicable here 🙂

Suggested change
"nodejs",

"instrumentation",
"nodejs",
"opentelemetry",
"profiling",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can also be removed 🙂

Suggested change
"profiling",

@dyladan
Copy link
Member

dyladan commented Jun 18, 2025

Hello there. sorry this has gone so long, but part of the problem is that client instrumentation is in a state of flux in otel, so nobody really knows what to do with it. There is a new startup sig for browser based instrumentation, which I would expect to be very similar to react native from a requirements and modeling perspective. It might be good to get their read on this instrumentation.

@trentm trentm added the Target: Browser Targets on Browser label Jul 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Target: Browser Targets on Browser

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants