99
1010import java .util .List ;
1111import java .util .Objects ;
12- import java .util .Optional ;
12+ import java .util .UUID ;
1313
1414/**
1515 * Provides variety of examples of data logging using REST API client.
2424 * Make sure to provide correct values above.
2525 */
2626public class ApiExamples {
27- static final String someExperimentName = "some-experiment-name" ;
27+ static final String randomExperimentName = UUID . randomUUID (). toString () ;
2828
2929 /**
3030 * The main entry point to the example.
@@ -38,45 +38,70 @@ public static void main(String[] args) throws Exception {
3838 private static void run () throws Exception {
3939 // create test experiment
4040 //
41- String projectName ;
42- String workspaceName ;
41+ String experimentProjectName ;
42+ String experimentWorkspaceName ;
43+ String experimentKey ;
4344 try (OnlineExperiment experiment = ExperimentBuilder
4445 .OnlineExperiment ()
4546 .interceptStdout ()
4647 .build ()) {
4748
48- experiment .setExperimentName (someExperimentName );
49+ experiment .setExperimentName (randomExperimentName );
4950 experiment .logMetric ("some-metric" , 10 );
5051
51- projectName = experiment .getProjectName ();
52- workspaceName = experiment .getWorkspaceName ();
52+ experimentProjectName = experiment .getProjectName ();
53+ experimentWorkspaceName = experiment .getWorkspaceName ();
54+ experimentKey = experiment .getExperimentKey ();
5355 }
5456
55- // get test experiment by name
57+ // Comet API usage examples
5658 //
5759 try (CometApi api = ExperimentBuilder .CometApi ().build ()) {
58- // get project where experiment saved
59- List <Project > projects = api .getAllProjects (workspaceName );
60- Optional <Project > optionalProject = projects .stream ()
61- .filter (project -> project .getProjectName ().equals (projectName ))
62- .findAny ();
63- if (!optionalProject .isPresent ()) {
64- return ;
65- }
66- Project project = optionalProject .get ();
67- System .out .printf ("Looking for experiments in project: %s\n ---------\n " , project );
60+ // get all workspaces available for the user
61+ //
62+ System .out .println ("===== All user's workspaces =====" );
63+ List <String > availableWorkspaces = api .getAllWorkspaces ();
64+ availableWorkspaces .forEach (System .out ::println );
65+ System .out .println ("=====\n " );
66+
67+ // get all projects under particular workspace
68+ //
69+ String workspace = availableWorkspaces .get (0 );
70+ System .out .printf ("===== Projects in workspace: '%s' =====\n " , workspace );
71+ List <Project > projects = api .getAllProjects (workspace );
72+ projects .forEach (System .out ::println );
73+ System .out .println ("=====\n " );
6874
69- // list all experiments in the project and select the one we are looking for
75+ // get all experiments under particular project
76+ //
77+ Project project = projects .get (0 );
78+ System .out .printf ("===== First 10 Experiments in project: '%s' =====\n " , project .getProjectName ());
7079 List <ExperimentMetadata > experiments = api .getAllExperiments (project .getProjectId ());
71- Optional <ExperimentMetadata > experimentMetadata = experiments .stream ()
72- .peek (System .out ::println )
73- .filter (meta -> Objects .equals (meta .getExperimentName (), someExperimentName ))
74- .findAny ();
75- if (experimentMetadata .isPresent ()) {
76- displayExperiment (experimentMetadata .get ());
80+ experiments .stream ()
81+ .filter (experimentMetadata -> !Objects .isNull (experimentMetadata .getExperimentName ()))
82+ .limit (10 )
83+ .forEach (System .out ::println );
84+ System .out .println ("=====\n " );
85+
86+ // get experiment(-s) by name/regex (using the one we created above)
87+ //
88+ System .out .printf ("===== Experiment(-s) by name/regex '%s' in workspace/project: '%s/%s' =====\n " ,
89+ randomExperimentName , experimentWorkspaceName , experimentProjectName );
90+ experiments = api .getExperiments (experimentWorkspaceName , experimentProjectName , randomExperimentName );
91+ if (experiments .size () == 1 ) {
92+ displayExperiment (experiments .get (0 ));
7793 } else {
78- System .out .printf ("Failed to find experiment with name: %s\n " , someExperimentName );
94+ System .out .printf ("*** No, or more than one experiment was found. Found: %d experiments.\n " ,
95+ experiments .size ());
7996 }
97+ System .out .println ("=====\n " );
98+
99+ // get experiment's meta-data by experiment key
100+ //
101+ System .out .printf ("===== Experiment's metadata by experiment key: '%s' =====\n " , experimentKey );
102+ ExperimentMetadata metadata = api .getExperimentMetadata (experimentKey );
103+ System .out .println (metadata );
104+ System .out .println ("=====\n " );
80105 }
81106 }
82107
0 commit comments