Once you've created your process model, you'll want to use it to answer questions about its performance. Creating plots will make it easy and visually engaging to interpret the results of your simulation runs.
The Process Modeling Library is designed to let you easily access metrics in three different areas: task completions, timing, and resource usage. Examples of all of these can be found in the simulation attached to the process modeling library project.
Sink blocks are end-points in a process model. As objects reach them they are counted, representing completed tasks on a production line, a delivery chain, a quality inspection, etc.. The Sink block automatically stores information about objects it receives in the process_data field on your agent.
You can easily build plots to access this information. Each Sink stores its data under a key formatted as '<sink_name>_count'. A metric which accesses the data for the above graph would look like:
Process models are useful for timing complex chains of actions. Service blocks will record the time spent waiting for resources to become available.
Sink blocks will record all the waits an object experienced, as well as the total time it took it to traverse the model. To specify a timing plot, first create metrics which access the appropriate '<service_name>_wait_time' and '<sink_name>_through_time' , which are located in the process_data
field on the agent. Then specify a "timeseries" plot with those metrics. Note that "wait times" are keyed to a Service block, while "through times" are keyed to a Sink.
Each Service, Seize, or Release block in your process model has an associated resource property specified in its parameters.
"bake_pizza": {
"resource": "oven_spots",
"time": 7,
"track_wait": true,
"max_resources": 5
}
If you'd like to have easy access to data about the usage of each of these resources, you can add the @hash/process/resource_data.js
behavior to your agent. This behavior calculates the proportion of resources currently in use, and stores the data in the process_data field.
To use the behavior, you'll also need to specify a new object in process_parameters:
"process_parameters": {
"max_resources": {
"senior_billers": 3,
"account_billers": 4,
"billing_clerks": 3,
"printers": 1
}
}
Previous
Next