-
Notifications
You must be signed in to change notification settings - Fork 254
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
Allow request traceability via distributed tracing #4783
Comments
I think you are posing this request in terms of tracing a flow within Nautobot/Job/etc. I would also like to consider this in the context of Nautobot participating in a larger distributed system/workflow. I.e. another system creates some data in Nautobot and provides a trace/span ID for tracking. |
Yes, I agree. My proposal was about the big picture (including the Nautobot internal one) |
Yes, that's exactly it. |
How much of this request would be covered by #5169? Or is this simply requesting that some type of identifier can be provided in web requests and Nautobot retains that identifier throughout the request's lifetime? |
It is about taking and identifier and pass through other intergations to create an end-to-end traceability |
@chadell would this be a sufficient definition of done for this issue?
|
Yes, this is what I had in mind as a potential solution, OpenTelemetry. |
I started testing adding in OpenTelemetry in #5295 mainly to get more familiar with Tempo/tracing. There's still a lot of work/testing needed before it's ready though. The PR so far has the ability to do a trace for normal page views and also running a job. The job run shows everything related to Django, Celery, Postgres, and Redis. |
As ...
Patti - Platform Admin
I want ...
to have more detailed visibility of Nautobot operations to better understand how the different steps in the process of a request are executed.
So that ...
I could understand where in the processing of a request more time is spent, and troubleshoot problems more effectively.
For instance, the OpenTelemetry standard, leveraging Django instrumentation could be a good starting point because it allows easier integration and a standard definition for Traces (and metrics and logs).
![image](https://private-user-images.githubusercontent.com/15998111/282124369-aa99ba90-d0d7-45a8-9538-6390b6170b35.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxNjI1OTgsIm5iZiI6MTcxOTE2MjI5OCwicGF0aCI6Ii8xNTk5ODExMS8yODIxMjQzNjktYWE5OWJhOTAtZDBkNy00NWE4LTk1MzgtNjM5MGI2MTcwYjM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDE3MDQ1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg0NzhkY2VlZGMzNDczMDQ5MDFkNGM3M2UxZjY4ZTMyZGY4MGMyNTU1MTk2ODYwNzc5ZDBmNmI1NGI3NzM1ZjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.j6JwGMQ2IWn84cHiNWUfxhsVT_4lTu6UqrpQA98QTr8)
A visualization like this could help understand the related interactions of a request:
I know this is done when...
Nautobot offers traces for the most significant operations, and also allows other apps in the ecosystem to leverage it.
Optional - Feature groups this request pertains to.
Database Changes
No response
External Dependencies
The text was updated successfully, but these errors were encountered: