...
Anchor | ||||
---|---|---|---|---|
|
Diagnostic Reports
Advanced users may also configure other presentation Listeners through the use of an INI-style configuration file. Two examples are:
Configuration File
Default Configuration
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# stats.ini # Roz Stats default configuration file # # Copy this file to: /a/path/of/your/choosing/stats.ini # set RMAN_STATS_CONFIG_PATH = /a/path/of/your/choosing version 0.1 # Set this to 1 for extra information when parsing this file verbose 0 # Stats processing log level. # Range is 0 (none) to 5 (debug output). Default is 3 (warnings) logLevel 3 # Session configuration [Session] # Distinguishing name for this session configuration name "RMANTREE Session" # Enable the internal live stats server liveStatsEnabled 1 # List of listeners which the session should create and manage. #[ManagedListeners] |
...
Command-line prman
will search for the stats configuration file in the following order:
Order | Location | Default |
---|---|---|
1 | /stats/configpath setting in rendermn.ini | .:${RMANTREE}/etc |
2 |
| none |
3 | prman -statsconfig </path/to/filename.ini> | stats.ini |
If you specify an absolute path on the command line it will override any requested search paths. This is a convenient way to do quick testing without having to modify an existing config file. For example, suppose you normally run with a certain configuration of listeners, but then want to do a render with details printed to the console about a specific metric or group of metrics. You could do a debugging run that temporarily overrides the default configuration in one of two ways - either by setting/pre-pending the environment variable override:
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# stats.ini # Roz Stats farm configuration file [Session] name "Farm Stats Session" # Disable the internal live stats server liveStatsEnabled 0 |
Checkpoint Render Report
The configuration file can also be utilized for advanced configuration to build a list of listeners to attach, and per-listener rules for metric data to be observed by each listener.
Below is an example of a configuration file that enables an end-of-render JSON report, including checkpoints:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# checkpoint_stats.ini
# Stats default configuration file
#
# Copy this file to: /a/path/of/your/choosing
# then run:
# prman -statsconfig /a/path/of/your/choosing/checkpoint_stats.ini
version 0.1
# Set this to 1 for extra information when parsing this file
verbose 1
# Stats processing log level.
# Range is 0 (none) to 5 (debug output). Default is 3 (warnings)
logLevel 5
# Session configuration
[Session]
name "Checkpoint Session"
# List of listeners which the session should create and manage.
[ManagedListeners]
# JSON output report listener
[Listener]
type "jsonreport"
name "jsonListener"
outputFilename "checkpoint_stats.json"
keepAllCheckpoints 1
[MetricRules]
# Save all metrics to the JSON file, sampled once per second
[Rule]
regexp ".*"
samplingInterval 1000 |
Note |
---|
This example configuration file has both the |
See JSON Report Listener reference page for JSON output configuration options.
DCC Configuration
A live stats configuration UI pane is available in all RenderMan bridge products, with the exception of Solaris which does not yet have support for the new stats system. In addition, advanced configuration with an INI file is also available through the use of the config environment variable. See below for DCC-specific details.
Blender
RfB uses the prman
command-line mechanism as described above, including the use of the RMAN_STATS_CONFIG_PATH
override environment variable.
Houdini
If the RMAN_STATS_CONFIG_PATH
environment variable is set RfH will use that search path to look for a file named stats.ini.
If no file is found, or if that environment variable is not set then the default configuration will be used.
Katana
If the RMAN_STATS_CONFIG_PATH
environment variable is set RfK will use that search path to look for a file named stats.ini.
If no file is found, or if that environment variable is not set then the default configuration will be used.
Additional configuration is also available in RfK through the following attributes:
prmanGlobalStatements.stats.configPath
(default: "."
)
prmanGlobalStatements.stats.configFile
(default: "stats.ini"
)
These attributes are currently not exposed in PrmanGlobalStatements, they must be set via AttributeSet or OpScript at the moment. Below is an OpScript which exposes these two attributes as user args with defaults as listed above. Copy and paste into your Katana scene and modify the path and config file name as needed.
...
DCC Configuration
A live stats configuration UI pane is available in all RenderMan bridge products, with the exception of Solaris which does not yet have support for the new stats system. In addition, advanced configuration with an INI file is also available through the use of the config environment variable. See below for DCC-specific details.
Blender
RfB uses the prman
command-line mechanism as described above, including the use of the RMAN_STATS_CONFIG_PATH
override environment variable.
Houdini
If the RMAN_STATS_CONFIG_PATH
environment variable is set RfH will use that search path to look for a file named stats.ini.
If no file is found, or if that environment variable is not set then the default configuration will be used.
Katana
If the RMAN_STATS_CONFIG_PATH
environment variable is set RfK will use that search path to look for a file named stats.ini.
If no file is found, or if that environment variable is not set then the default configuration will be used.
Additional configuration is also available in RfK through the following attributes:
prmanGlobalStatements.stats.configPath
(default: "."
)
prmanGlobalStatements.stats.configFile
(default: "stats.ini"
)
These attributes are currently not exposed in PrmanGlobalStatements, they must be set via AttributeSet or OpScript at the moment. Below is an OpScript which exposes these two attributes as user args with defaults as listed above. Copy and paste into your Katana scene and modify the path and config file name as needed.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<katana release="4.0v2" version="4.0.2.000001">
<node name="__SAVE_exportedNodes" type="Group">
<node baseType="OpScript" edited="true" name="AdvancedStatsConfiguration" ns_colorb="0.050000" ns_colorg="0.260000" ns_colorr="0.090000" ns_errorGlow="0.000000" ns_fromContext="legacy" selected="true" type="OpScript" x="287.350171" y="-212.346316">
<port name="i0" source="GafferThree.out" type="in"/>
<port name="out" type="out"/>
<group_parameter name="AdvancedStatsConfiguration">
<string_parameter name="CEL" value="((/root))"/>
<string_parameter name="location" value="/root/world/location"/>
<group_parameter name="script">
<string_parameter name="lua" value="
-- Default: 'stats.ini'
local configFile = Interface.GetOpArg('user.configFile'):getValue()

-- Default: '.:${RMANTREE}/etc'
-- Can be overriden with RMAN_STATS_CONFIG_PATH
local configPath = Interface.GetOpArg('user.configPath'):getValue()

Interface.SetAttr(
 'prmanGlobalStatements.stats.configFile', 
 StringAttribute(configFile))

Interface.SetAttr(
 'prmanGlobalStatements.stats.configPath', 
 StringAttribute(configPath))

"/>
</group_parameter>
<string_parameter name="executionMode" value="immediate"/>
<string_parameter name="applyWhere" value="at locations matching CEL"/>
<string_parameter name="applyWhen" value="during op resolve"/>
<string_parameter name="modifierNameMode" value="node name"/>
<string_parameter name="modifierName" value="modifier"/>
<string_parameter name="resolveIds" value=""/>
<number_parameter name="recursiveEnable" value="0"/>
<string_parameter name="disableAt" value=""/>
<string_parameter name="inputBehavior" value="by index"/>
<number_parameter name="multisampleUserOpArgs" value="0" | ||||||
Code Block | ||||||
| ||||||
<katana release="4.0v2" version="4.0.2.000001"> <node name="__SAVE_exportedNodes" type="Group"> <node baseType="OpScript" edited="true" name="AdvancedStatsConfiguration" ns_colorb="0.050000" ns_colorg="0.260000" ns_colorr="0.090000" ns_errorGlow="0.000000" ns_fromContext="legacy" selected="true" type="OpScript" x="287.350171" y="-212.346316"> <port name="i0" source="GafferThree.out" type="in"/> <port name <group_parameter hints="out{}" typename="outuser"/> <group <string_parameter hints="{'widget': 'fileInput'}" name="AdvancedStatsConfiguration""configFile" value="stats.ini"/> <string_parameter name="CEL" value="((/root))expression="'.:'+getenv("RMANTREE", ".")+'/etc'" hints="{}" name="configPath"/> <string_parameter name="location" value="/root/world/location"/></group_parameter> <group_parameter name="script"></group_parameter> <string_parameter name="lua" value="
-- Default: 'stats.ini'
local configFile = Interface.GetOpArg('user.configFile'):getValue()

-- Default: '.:${RMANTREE}/etc'
-- Can be overriden with RMAN_STATS_CONFIG_PATH
local configPath = Interface.GetOpArg('user.configPath'):getValue()

Interface.SetAttr(
 'prmanGlobalStatements.stats.configFile', 
 StringAttribute(configFile))

Interface.SetAttr(
 'prmanGlobalStatements.stats.configPath', 
 StringAttribute(configPath))

"/> </group_parameter> <string_parameter name="executionMode" value="immediate"/> <string_parameter name="applyWhere" value="at locations matching CEL"/> <string_parameter name="applyWhen" value="during op resolve"/> <string_parameter name="modifierNameMode" value="node name"/> <string_parameter name="modifierName" value="modifier"/> <string_parameter name="resolveIds" value=""/> <number_parameter name="recursiveEnable" value="0"/> <string_parameter name="disableAt" value=""/> <string_parameter name="inputBehavior" value="by index"/> <number_parameter name="multisampleUserOpArgs" value="0"/> <group_parameter hints="{}" name="user"> <string_parameter hints="{'widget': 'fileInput'}" name="configFile" value="stats.ini"/> <string_parameter expression="'.:'+getenv("RMANTREE", ".")+'/etc'" hints="{}" name="configPath"/> </group_parameter> </group_parameter> </node> </node> </katana> |
Note |
---|
RfK no longer allows interactive configuration of stats through the PrmanLiveStats Tab. Configuration of options will soon be allowed through exposed attributes, in the meantime, all configuration must come from an INI configuration file as described above. |
Maya
If the RMAN_STATS_CONFIG_PATH
environment variable is set RfM will use that search path to look for a file named stats.ini.
If no file is found, or if that environment variable is not set then the default configuration will be used.
Solaris
</node>
</node>
</katana> |
Note |
---|
RfK no longer allows interactive configuration of stats through the PrmanLiveStats Tab. Configuration of options will soon be allowed through exposed attributes, in the meantime, all configuration must come from an INI configuration file as described above. |
Maya
If the RMAN_STATS_CONFIG_PATH
environment variable is set RfM will use that search path to look for a file named stats.ini.
If no file is found, or if that environment variable is not set then the default configuration will be used.
Solaris
The new stats are not yet supported in Solaris.
...
Diagnostic Reports
Advanced users may also use the configuration file to build and configure a list of presentation Listeners, each with a set of rules for metric data to be observed by that listener.
Checkpoint Render Report
For example, below is an example of a configuration file that enables an end-of-render JSON report, including checkpoints:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# checkpoint_stats.ini
# Stats default configuration file
#
# Copy this file to: /a/path/of/your/choosing
# then run:
# prman -statsconfig /a/path/of/your/choosing/checkpoint_stats.ini
version 0.1
# Set this to 1 for extra information when parsing this file
verbose 1
# Stats processing log level.
# Range is 0 (none) to 5 (debug output). Default is 3 (warnings)
logLevel 5
# Session configuration
[Session]
name "Checkpoint Session"
# List of listeners which the session should create and manage.
[ManagedListeners]
# JSON output report listener
[Listener]
type "jsonreport"
name "jsonListener"
outputFilename "checkpoint_stats.json"
keepAllCheckpoints 1
[MetricRules]
# Save all metrics to the JSON file, sampled once per second
[Rule]
regexp ".*"
samplingInterval 1000 |
See JSON Report Listener reference page for JSON output configuration optionsThe new stats are not yet supported in Solaris.
Comment |
---|
OLD CONFIGURATION, TO BE PORTED TO NEW CONFIG UILive Statistics ConfigurationEach DCC has a window dedicated to Live Statistics presentation. When available (RfM, RfH) the window also includes basic configuration options. Below is a snapshot of the configuration options as seen in RenderMan for Maya: Enable Live StatsToggle this on to enable the built-in WebSocket server and connect the DCC's client window to the live data stream. This works best if only one render is connected at a time, on the default port. PortIn the event multiple renders are attempting to run live stats, each render will need a unique port, configured manually. The default port is Connect/DisconnectWhen Enable Live Stats is active, the Attach to Render button becomes available for manually connecting and disconnecting from a running render. StatusThe bottom line of the configuration portion of the Live Statistics window is the current state of the connection if the Live Stats Server is enabled. |