Analytics
17 min
the analytics module provides access to the litmus edge analytics service processors, groups, ai models, and variables imports \# rest api (3 x and 4 0 x) from litmussdk import analytics \# graphql api (4 0 x only) from litmussdk analytics import gql instances, gql models, variables note graphql functions raise unsupportedversionerror when called against a 3 x device rest api (3 x and 4 0 x) listing from litmussdk import analytics \# list all processor groups groups = analytics list all groups() # list\[str] \# list all processors processors = analytics list all processors() # list\[dict] \# list all available functions functions = analytics list all functions() # list\[dict] processor library the sdk ships with a local library of processor type definitions use it to look up processor configurations without an api call from litmussdk import analytics \# get a processor type by name internal name, params = analytics get single processor from library("generator") \# browse the full library all types = analytics list all in processor library() creating a processor from litmussdk import analytics internal name, params = analytics get single processor from library("generator") processor = analytics create processor( function defined name="my generator", function internal name=internal name, function parameters=params, group name="default", ) processor id = processor\["id"] reading and updating a processor from litmussdk import analytics processor id = "969ca8ab bf87 4537 b50e 57b109c40dbd" \# get full processor details proc = analytics get processor(processor id) params = proc\["parameters"] \# update a single parameter params\["strength"] = "100" analytics update processor(processor id, params) \# get the last value published by the processor value = analytics get processor last value(processor id) enable / disable analytics enable processor(processor id) # start analytics enable processor(processor id, enabled=false) # stop connecting processors connect processor takes lists of processor ids (one or many on each side) and a connection type analytics connect processor( connection type="events", # or "values" inputs processors=\[input id], # list, plural outputs processors=\[output id], # list, plural ) deleting analytics delete processor(processor id) \# delete all processors in a group, use with caution analytics remove all processors() graphql api (4 0 x only) groups from litmussdk analytics import gql instances groups = gql instances get groups() # list\[str] instances = gql instances get processor instances("default") # list\[dict] \# lock / unlock a group for editing gql instances set group lock status("default", "checkout") gql instances set group lock status("default", "checkin") creating and connecting instances \# create a processor instance in a group gql instances create processor instance("generator", "my gen") \# connect instances gql instances connect processor instances(\["src id"], \["dst id"], "values") \# disconnect gql instances disconnect processor instances(\["src id"], \["dst id"], "values") export / import groups \# export a group configuration (use with airgaptemplate) payload = gql instances export group("default") \# import a group configuration gql instances import group("default", payload) variables and parameters from litmussdk analytics import variables \# variables variables get analytics variables() variables set analytics variable("myvar", "42") \# parameters variables set analytics parameter("myparam", "val") ai models from litmussdk analytics import gql models providers = gql models get ai providers() # list available providers models = gql models list ai models() gql models add ai model( provider="openai", name="gpt 4 model", url="https //api openai com", key="sk ", model="gpt 4", ) gql models delete ai model("gpt 4 model") \# tensorflow models tf models = gql models get tensorflow models() gql models delete tensorflow model("my tf model") license copyright (c) litmus automation inc