Quickstart
Start analyzing with the DBNL platform immediately
Determine how you’d like to explore DBNL
Explore the Product with a Read Only SaaS Account
Deploy a Local Sandbox with Example Data
1
pip install --upgrade dbnl
dbnl sandbox start
dbnl sandbox logs # See spinup progress2
3
import dbnl
import io, json, zstandard, pandas
from datetime import datetime, timedelta, timezone
from urllib.request import urlopen
print("dbnl version:", dbnl.__version__)
dbnl.login(
api_url="http://localhost:8080/api",
api_token="", # found at http://localhost:8080/tokens
)
project = dbnl.get_or_create_project(
name="Quickstart Demo",
default_llm_model_name="quickstart_model", # from step (2) above
)
# Load 14 days of OTEL traces from public S3 and upload to DBNL
BASE = "https://dbnl-demo-public.s3.us-east-1.amazonaws.com/outing_agent_log_data"
today = datetime.now(timezone.utc).replace(hour=0, minute=0, second=0, microsecond=0)
dctx = zstandard.ZstdDecompressor()
print(f"See status at: {dbnl.config.app_url()}/ns/{project.namespace_id}/projects/{project.id}/status")
for i in range(14):
data_start = today - timedelta(days=14 - i)
data_end = data_start + timedelta(days=1)
day = data_start.strftime("%Y-%m-%d")
try:
raw = dctx.stream_reader(io.BytesIO(urlopen(f"{BASE}/traces_{day}.jsonl.zst").read())).read()
data = pandas.Series([json.loads(l) for l in raw.decode().splitlines()])
print(f"[{i+1}/14] {day}: uploading {len(data)} records")
except Exception as e:
if "Not Found" in str(e):
print(f"[{i+1}/14] {day}: no data")
continue
raise
try:
dbnl.log(
project_id=project.id,
data_start_time=data_start,
data_end_time=data_end,
otlp_data=data,
wait_timeout=60 * 30,
)
except Exception as e:
if "Data already exists" in str(e):
print(f"[{i+1}/14] {day}: data already exists")
continue
raise
print(f"Explore: {dbnl.config.app_url()}/ns/{project.namespace_id}/projects/{project.id}")4