System ("sys") namespace
API reference page for the system namespace
The sys namespace contains system information and some basic data about initialized Neptune objects. Most of this data is logged automatically.
  • You cannot create new fields in this namespace.
  • Making edits to fields in the system namespace is excluded from monitoring time.
The fields in the system namespace are listed in the table below. For more details on a field, refer to the respective section.
Field
Description
Example
id
Neptune identifier (ID)
  • Run: CLS-15
  • Model: CLS-FOREST
  • Model version: CLS-FOREST-9
custom_run_id
Custom run identifier
my custom ID
name *
Name of the object
Testing new approach
running_time
Total running time of the object in seconds
1.822
monitoring_time
Total monitoring time used by the object in seconds
2
ping_time
Time of the last interaction with the Neptune client library
2022-05-03 06:45:23.452364+00:00
owner
Username of the user who created the object
neptuner
creation_time
Time the object was created
2022-04-25 07:08:05.023000+00:00
modification_time
Time the object was last modified
2022-05-03 06:45:23.452364+00:00
tags *
Tags applied to the object
maskRCNN, finetune, v2.0.1
state
Whether the object is active or inactive
idle
size
Size of the object in bytes
6973.0
failed *
(Runs only) Whether the run was marked as "failed"
False
description *
Description of the object
Different pre-processing method and new test data
hostname
(Runs only) System host where the run was created
LAPTOP-EX1000
model_id
(Model versions only) Identifier of the model
PROJ-MOD
stage *
(Model versions only) Stage of the model version
production
* The field can be manually edited, either through the app or the API.

Identifier ("sys/id", String)

Each run, model, and model version object has a unique string identifier within the project.
The project key is always the first part of an object ID.
  • Run ID = project key + high water counter
    • Example: In a project called "Classification" with project key CLS, the third run will have the identifier CLS-3.
  • Model ID = project key + model key.
    • In a project called "Classification" with project key CLS, a model with key FOREST will have the identifier CLS-FOREST.
  • Model version ID = project key + model key + high water counter.
    • For a model with identifier CLS-FOREST, the third model version will have the identifier CLS-FOREST-3.
You can access the ID of your object programmatically with the fetch() method:
import neptune.new as neptune
run = neptune.init(project="ml-team/classification")
run_id = run["sys/id"].fetch()
The ID can be used to resume logging for the object later, or connect to it from multiple processes.

Custom run ID ("sys/custom_run_id", String)

The custom run identifier, if one was supplied at creation:
import neptune.new as neptune
run = neptune.init(
project="ml-team/classification",
custom_run_id="my custom ID",
)
You can also set the custom run ID as an environment variable, to facilitate logging from multiple locations. See:

Name ("sys/name", String)

Editable name of an object. Should capture the essence of the object in a one-sentence summary. Does not need to be unique.
Can be set either during initialization through the name parameter of init(), or later updated directly from the code:
import neptune.new as neptune
run = neptune.init(project="ml-team/classification")
run["sys/name"] = "Testing new approach"

Description ("sys/description", String)

Editable description of an object. Works well as a longer description or free-form note that can be edited in multiple ways.
Can be set either during initialization through the description parameter of init(), or later updated directly from the code:
import neptune.new as neptune
run = neptune.init(project="ml-team/classification")
run["sys/description"] = "Detailed description of the run"
You can also edit the description through the Neptune app:
  • Runs
    • In the single run view, by clicking Details in the left pane
    • Directly in runs table, by adding the sys/description field as a column
  • Models: In the Models view, by selecting the model name and clicking Details next to the model name
  • Model versions
    • In the single model version view, by clicking Details in the left pane
    • Directly in the Versions view, by adding the sys/description field as a column

Running time ("sys/running_time", Float)

Total running time of the object in seconds. This number will take into account any additional resumes of the object.

Monitoring time ("sys/monitoring_time", Integer)

Total monitoring time used by the object in seconds. This number will take into account any additional resumes of the object.

Owner ("sys/owner", String)

Neptune username of the user that created the object.

Creation time ("sys/creation_time", Datetime)

Creation time of the object. Includes date, time of day, and information about the time zone.

Modification time ("sys/modification_time", Datetime)

Time that the object was last modified. Includes date, time of day, and information about the time zone.

Tags ("sys/tags", StringSet)

The tags assigned to the object.
You can assign tags in the following ways:
  • (Runs only) During initialization, pass them as arguments for the tags parameter of init()
  • With the add() method: object["sys/tags"].add("best")
  • Through the Neptune app

State ("sys/state", RunState)

An object can be in one of two states: Inactive and Active.
  • Active means that at least one process is connected to the object. This may be a process that is logging training metrics, monitoring performance, or fetching metadata to perform further analysis.
  • The object automatically transitions to an Inactive state once there has been no activity for 20 seconds, typically after the script ended or you invoked stop().
Note that "active/inactive" does not correspond to "successful/failed". The connection to a Neptune object can be paused and resumed multiple times, so Neptune does not know when the logging of the object was a success.
  • Example: In the case of a run, an inactive state can mean that the run did not start, that the training or monitoring was paused, or that it did in fact finish training with a success.
To make the states match your workflow better, you can set a custom status for each run. For example: run["info/state"] = "Success" or run["info/state"] = "Queued".

Stage ("sys/stage", ModelVersionStage)

A model version object can be in one of four lifecycle stages:
  • none (default)
  • staging
  • production
  • archived
You can manage the stage either through the app or programmatically with the change_stage() method. To learn more, see Managing model stages.

Failed ("sys/failed", Boolean)

Whether the run failed. You can set it manually to mark a run as failed, or reset it to False in case of resuming a failed run.
If there is a crash during monitoring, Neptune automatically sets the Failed status to True. You can override this behavior by setting the fail_on_exception parameter in init() to False.
In both cases, the traceback is captured and appended to the "monitoring/traceback" field. If you provided a custom monitoring namespace in init(), the path will be "monitoring_namespace/traceback".
If you performed a remote abort, the Failed status will also be set to True. To learn more, see Remote stop and abort.