Backend: Error Monitoring
Backend: Logging
Go
JS
Python
Ruby
Java
Rust
Hosting Providers
Backend: Tracing
Native OpenTelemetry
Fullstack Frameworks
Overview
Self Host & Local Dev
Menu
Manual Python Tracing
Learn how to set up highlight.io tracing for your Python application.
1
Setup your frontend Highlight snippet with tracingOrigins.
Make sure that you followed the fullstack mapping guide.
H.init("<YOUR_PROJECT_ID>", {
tracingOrigins: ['localhost', 'example.myapp.com/backend'],
networkRecording: {
enabled: true,
recordHeadersAndBody: true,
},
});
2
Install the highlight-io python package.
Download the package from pypi and save it to your requirements. If you use a zip or s3 file upload to publish your function, you will want to make sure highlight-io
is part of the build.
poetry add highlight-io
# or with pip
pip install highlight-io
3
Initialize the Highlight SDK.
Setup the SDK.
import highlight_io
# `instrument_logging=True` sets up logging instrumentation.
# if you do not want to send logs or are using `loguru`, pass `instrument_logging=False`
H = highlight_io.H(
"<YOUR_PROJECT_ID>",
instrument_logging=True,
service_name="my-app",
service_version="git-sha",
environment="production",
)
4
Run your code with the H.trace() wrapper.
Wrap your code with H.trace(), and run your code.
import logging
def main():
with H.trace(span_name="my_span"):
logging.info('hello, world!', {'favorite_number': 7})
return f"<h1>Hello world</h1>"
if __name__ == "__main__":
main()
5
Use a decorator to trace your functions.
Use the highlight_io.trace()
decorator to create spans for your functions.
import logging
@highlight_io.trace
def my_cool_method():
logging.info("hello my_cool_method", {"customer": "unknown", "trace": "inside"})
time.sleep(random.randint(0, 10) / 1000)
logging.info("goodbye my_cool_method", {"customer": "unknown", "trace": "inside"})
def main():
with H.trace(span_name="my_span"):
logging.info('hello, world!', {'favorite_number': 7})
my_cool_method()
return f"<h1>Hello world</h1>"
if __name__ == "__main__":
main()
6
Verify your backend traces are being recorded.
Visit the highlight traces portal and check that backend traces are coming in.