nimblebox logo


NimbleBox LMAO is our general purpose observability tool for any kind of computation you might have.



Function to create a Record protobuf object from a key and value.


If there is a .git folder in the folder, return some details for that.



(project_name:str,project_id:str,experiment_id:str,metadata:Dict[str, Any],save_to_relic:bool,enable_system_monitoring:bool,store_git_details:bool,workspace_id:str)
  • project_name -

    The name of the project. Defaults to "".

  • project_id -

    The id of the project. Defaults to "".

  • experiment_id -

    The id of the experiment. Defaults to "".

  • metadata -

    Any metadata that you want to store. Defaults to {}.

  • save_to_relic -

    Whether to save the data to the relic. Defaults to False.

  • enable_system_monitoring -

    Whether to enable system monitoring. Defaults to False.

  • store_git_details -

    Whether to store git details. Defaults to True.

  • workspace_id -

    The id of the workspace. Defaults to "".

Lmao is the client library for using NimbleBox Monitoring. It talks to your monitoring instance running on your build and stores the information in the project_name or project_id. This object inherently doesn't care what you are actually logging and rather concerns itself with ensuring storage.

Note: All arguments are optional, if the _lmaoConfig is set.


Get the underlying Relic for more advanced usage patterns.


Log a single level dictionary to the platform at any given step. This function does not really care about the information that is being logged, it just logs it to the platform.


Register a file save. User should be aware of some structures that we follow for standardizing the data. All the experiments are going to be tracked under the following pattern:

  • relic_name is going to be the experiment ID, so any changes to the name will not affect relic storage
  • {experiment_id}(_{job_id}@{experiment_id}) is the name of the folder which contains all the artifacts in the experiment.

If relics is not enabled, this function will simply log to the LMAO DB.

dk.save_file("foo.t", "/bar/", "baz.t", "/bar/roo/")


End the run to declare it complete. This is more of a convinience function than anything else. For example when you are monitoring a live API you may never know when the experiment is complete. This function locks the experiment name so it can't be modified.

  • init_path -

    This can be a path to a folder or can be optionally of the structure fp:fn where fp is the path to the file and fn is the function name.

  • project_name_or_id -

    The name or id of the LMAO project.

  • workspace_id -

    If nor provided, defaults to global config

  • trigger -

    Defaults to False. If True, will trigger the run after uploading.

  • untracked -

    If True, then untracked files below 1MB will also be zipped and uploaded. Defaults to False.

  • untracked_no_limit -

    If True, then all untracked files will also be zipped and uploaded. Defaults to False.

  • resource_cpu -

    Defaults to "100m". The CPU resource to allocate to the run.

  • resource_memory -

    Defaults to "128Mi". The memory resource to allocate to the run.

  • resource_disk_size -

    Defaults to "1Gi". The disk size resource to allocate to the run.

  • resource_gpu -

    Defaults to "none". The GPU resource to use.

  • resource_gpu_count -

    Defaults to "0". Number of GPUs allocated to the experiment.

  • resource_timeout -

    Defaults to 120_000. The timeout between two consecutive runs, honoured but not guaranteed.

  • resource_max_retries -

    Defaults to 2. The maximum number of retries for a run.

  • **run_kwargs -

    These are the kwargs that will be passed to your Operator.

Upload and register a new run for a NBX-LMAO project.

nbox SDKnbox provides built in access to all the APIs and packages them in the most user friendly manner.Star 0