roboto.roboto_search
Module Contents
RobotoSearch
A high-level interface for querying the Roboto data platform.
In most cases, using this class should be as simple as:
from roboto import RobotoSearch
rs = RobotoSearch()
for dataset in rs.find_datasets(...):
...Parameters
query_client Optional[roboto.RobotoSearch.find_collections()
Parameters
query Optional[roboto.timeout_seconds floatReturn type
RobotoSearch.find_datasets()
Parameters
Return type
RobotoSearch.find_devices()
Yield Device objects matching query, one at a time.
Results stream lazily as you iterate; timeout_seconds bounds how long iteration waits for results before stopping.
Usage
from roboto import RobotoSearch
searcher = RobotoSearch()
for device in searcher.find_devices("tags CONTAINS 'warehouse'"):
print(device.device_id)Parameters
query Optional[roboto.timeout_seconds floatReturn type
RobotoSearch.find_events()
Parameters
query Optional[roboto.timeout_seconds floatReturn type
RobotoSearch.find_files()
Parameters
query Optional[roboto.timeout_seconds floatReturn type
RobotoSearch.find_message_paths()
Parameters
query Optional[roboto.timeout_seconds floatReturn type
RobotoSearch.find_sessions()
Yield Session objects matching query, one at a time.
Submits query against the structured-query API targeting Sessions and lazily materializes each row into a Session instance bound to the caller’s RobotoClient. Iteration drives server-side pagination under the hood; timeout_seconds bounds the total wall-clock time spent waiting for query results before iteration stops.
Filterable fields:
session_id(aliasid).name.min_timestamp_ns(aliasstart_time) — inclusive lower bound of the session’s recorded time window.max_timestamp_ns(aliasend_time) — inclusive upper bound of the session’s recorded time window.duration— synthetic numeric field equal tomax_timestamp_ns - min_timestamp_ns; accepts integer nanoseconds only.dataset.dataset_id(aliasdataset.id) — matches sessions that include at least one file from the given dataset.=/!=only.device.device_id(aliasdevice.id) — matches sessions attached to the given device.=/!=only.collection.collection_id(aliascollection.id) — matches sessions that are a member of the given collection.=/!=only.metric.<name>(aliasmetrics.<name>) — matches sessions by a session metric named<name>; dots are part of the metric name (e.g.metric.cpu.load.max). Accepts value and existence comparators. The value comparators=,!=,>,>=,<,<=require a numeric value, and only match sessions that have the metric and whose value satisfies the comparison. The presence comparators take no value:IS_NOT_NULL/EXISTSmatch sessions that have the metric (any value);IS_NULL/NOT_EXISTSmatch sessions that lack it.
The four time-window fields accept any shape roboto.time.Time permits — integer epoch nanoseconds, float / Decimal / <sec>.<nsec> string seconds, ISO8601 strings, or a datetime (read as UTC when it carries no timezone) — and the server normalizes the value to epoch nanoseconds before the comparison runs.
Sortable fields: session_id, min_timestamp_ns, and duration.
Parameters
query Optional[roboto.timeout_seconds floatReturn type
RobotoSearch.find_topics()
Usage
import matplotlib.pyplot as plt
from roboto import RobotoSearch
searcher = RobotoSearch()
for topic in searcher.find_topics("msgpaths[cpuload.load].max > 0.9"):
df = topic.get_data_as_df(message_paths_include=["cpuload.load"])
plt.plot(df.index, df["cpuload.load"], label=topic.topic_id)
plt.legend()
plt.show()Parameters
query Optional[roboto.timeout_seconds floatReturn type
RobotoSearch.for_roboto_client()
Parameters
roboto_client roboto.org_id Optional[str]Return type
RobotoSearch.from_env()
Create a RobotoSearch instance configured from environment variables.
Reads authentication credentials and endpoint configuration from environment variables ($ROBOTO_API_KEY/$ROBOTO_BEARER_TOKEN, $ROBOTO_SERVICE_ENDPOINT) or the config file at $ROBOTO_CONFIG_FILE (default: ~/.roboto/config.json). If using the config file, $ROBOTO_PROFILE can be used to select a profile from the config.
$ROBOTO_ORG_ID can be used to set the organization ID to query. When it is unset, the organization queried is the org_id of the config file profile in use, which roboto setup saves. Naming an organization should only be necessary if you belong to multiple organizations.
Returns
A configured RobotoSearch instance ready to query the Roboto platform.
Usage
import roboto
roboto_search = roboto.RobotoSearch.from_env()
for dataset in roboto_search.find_datasets():
print(dataset.name)