opik icon indicating copy to clipboard operation
opik copied to clipboard

feat: introduced conditional tracing at runtime

Open Gmin2 opened this issue 6 months ago • 1 comments

Details

Introduced conditional tracing at runtime by defining set_tracing_active() and is_tracing_active() functions in the config module

Issues

Resolves #2090

Testing

I had craeted a test script that had two tracing enabled(which is by default) and one disabled

#test_dynamic_tracing.py
import opik
import time
import random

opik.configure(use_local=True)

@opik.track
def sample_function(input_data):
    print(f"Processing: {input_data}")
    time.sleep(0.5)  # Simulate work
    return f"Processed {input_data}"

# Test 1: Verify tracing is enabled by default
print("\n--- Test 1: Default behavior (tracing enabled) ---")
print(f"Is tracing active? {opik.is_tracing_active()}")
result = sample_function("test1")
print(f"Result: {result}")
print("Check Opik UI to confirm trace was created")
time.sleep(2)  

# Test 2: Disable tracing
print("\n--- Test 2: Disable tracing ---")
opik.set_tracing_active(False)
print(f"Is tracing active? {opik.is_tracing_active()}")
result = sample_function("test2")
print(f"Result: {result}")
print("Check Opik UI to confirm NO trace was created")
time.sleep(2)  

# Test 3: Re-enable tracing
print("\n--- Test 3: Re-enable tracing ---")
opik.set_tracing_active(True)
print(f"Is tracing active? {opik.is_tracing_active()}")
result = sample_function("test3")
print(f"Result: {result}")
print("Check Opik UI to confirm trace was created")
time.sleep(2)  

and see the logs

opik/sdks/python git:dynamic-tracing*  
(venv) ❯ python3 test_dynamic_tracing.py
Found local Opik instance on: http://localhost:5173/, do you want to use it? (Y/n)Y
OPIK: Configuration saved to file: /home/mintu-ubuntu/.opik.config

--- Test 1: Default behavior (tracing enabled) ---
Is tracing active? True
Processing: test1
OPIK: Started logging traces to the "Default Project" project at http://localhost:5173/api/v1/session/redirect/projects/?trace_id=0197133d-021a-7cc6-b421-0aabe1cecf2e&path=aHR0cDovL2xvY2FsaG9zdDo1MTczL2FwaS8=.
Result: Processed test1
Check Opik UI to confirm trace was created

--- Test 2: Disable tracing ---
Is tracing active? False
Processing: test2
Result: Processed test2
Check Opik UI to confirm NO trace was created

--- Test 3: Re-enable tracing ---
Is tracing active? True
Processing: test3
Result: Processed test3
Check Opik UI to confirm trace was created

and see in the ui there is no traces of test 2

https://github.com/user-attachments/assets/3872cb8f-7b55-4265-b8f4-8a6950af108a

Documentation

Updated the docs of sdk python

/claim #2090

Gmin2 avatar May 27 '25 19:05 Gmin2

@Gmin2 few of your PRs are blocked. The NLTK one will be merged once we resolve an issue with our unit tests, they are failing due to PR being an outside contributor. Bear with us 🙏

vincentkoc avatar May 29 '25 13:05 vincentkoc

@Gmin2 are you still working on this?

vincentkoc avatar Jun 17 '25 12:06 vincentkoc

yes, on it

Gmin2 avatar Jun 18 '25 02:06 Gmin2

It was addressed.

alexkuzmik avatar Aug 01 '25 12:08 alexkuzmik