Contents
Stream metric data to a file and/or to the console.
Description
Stream diagnostic output to the console during a render and/or report final values to a CSV-formatted file.
Configuration
Required type for configuring the Telemetry listener from an ini
file.
type "telemetry"
Options
Listener Options | Type | Description | Required? | Default |
---|---|---|---|---|
| string | Must be " | y | |
| string | Unique name of the listener | y | "" |
| string | The filename of the final report. | y | "" |
streamToConsole | bool | Set true for live streaming of metric values to stdout | n | 0 |
onlyReportChanges | bool | Set true to only report updates when the value of the payload is different from the previous update. By default all updates received will be reported. | n | 0 |
Metric Rules | ||||
| string | One or more metrics to be observed. If this is empty no metrics are reported. | n | "" |
| integer | Sampling interval in MS for the metrics requested in the preceding | n | 1000ms |
The outputFilename
setting can include environment variables which will be expanded when processed by the Listener. Standard environment variable formats are supported, as well as Linux shell variable expansion syntax:
$VAR
${VAR}
${VAR:-fallback}
${VAR:=fallback}
Configuration Example: All Events
Enable streaming telemetry output reporting all events as they are received.
# Roz Stats default configuration file # Copy this file to: /a/path/of/your/choosing # set RMAN_STATS_CONFIG_PATH = /a/path/of/your/choosing # or run prman -statsconfig thisfile.ini version 0.1 # Stats processing log level. # Range is 0 (none) to 5 (debug output). Default is 3 (warnings) logLevel 3 # Session configuration [Session] name "Telemetry Session" liveStatsEnabled 1 # List of listeners which the session should create and manage. [ManagedListeners] [Listener] type "telemetry" name "Event Telemetry" outputFilename "telemetry_events.csv" streamToConsole 1 onlyReportChanges 1 [MetricRules] [Rule] regexp "/rman/.*@.*"
Output Example
prman -statsconfig telemetry_events_stats.ini scene.rib
EVENT elapsed: 0.004155s name: /rman/rib@renderBegin payload: [] EVENT elapsed: 0.193355s name: /rman/raytracing@traceGroupCreated payload: [["World", 1]] EVENT elapsed: 0.193739s name: /rman/rib@sceneBuildingBegin payload: [] EVENT elapsed: 0.19374s name: /rman/rib/processing:time@start payload: ["unspecified"] EVENT elapsed: 0.350769s name: /rman/riley/createMaterial:time@start payload: ["defaultLightBxdf_continuation"] EVENT elapsed: 0.351806s name: /rman/riley/createMaterial:time@stop payload: ["defaultLightBxdf_continuation"] EVENT elapsed: 0.351809s name: /rman/riley/createMaterial:time@start payload: ["defaultLightBxdf_noContinuation"] EVENT elapsed: 0.351819s name: /rman/riley/createMaterial:time@stop payload: ["defaultLightBxdf_noContinuation"] EVENT elapsed: 0.352165s name: /rman/riley/createIntegrator:time@start payload: ["PxrPathTracer"] EVENT elapsed: 0.353437s name: /rman/riley/createIntegrator:time@stop payload: ["PxrPathTracer"] EVENT elapsed: 0.353552s name: /rman/riley/createCamera:time@start payload: ["world"] EVENT elapsed: 0.354501s name: /rman/riley/createCamera:time@stop payload: ["world"] EVENT elapsed: 0.354516s name: /rman/riley/createCamera:time@start payload: ["/root/world/cam/camera"] EVENT elapsed: 0.354524s name: /rman/riley/createCamera:time@stop payload: ["/root/world/cam/camera"] EVENT elapsed: 0.354543s name: /rman/riley/createRenderOutput:time@start payload: ["Ci"] EVENT elapsed: 0.354545s name: /rman/riley/createRenderOutput:time@stop payload: ["Ci"] EVENT elapsed: 0.354547s name: /rman/riley/createRenderOutput:time@start payload: ["a"] EVENT elapsed: 0.354547s name: /rman/riley/createRenderOutput:time@stop payload: ["a"] EVENT elapsed: 0.354549s name: /rman/riley/createRenderTarget:time@start payload: ["Ci_a"] EVENT elapsed: 0.354558s name: /rman/riley/createRenderTarget:time@stop payload: ["Ci_a"] ...
Configuration Example: Ray Count and Process Information
Enable streaming telemetry output with final CSV report written to: roz_telemetry.csv
. Report all of the "numRays" metrics, sampling 4x per second, and report process memory and time once per second.
# Roz Stats default configuration file # Copy this file to: /a/path/of/your/choosing # set RMAN_STATS_CONFIG_PATH = /a/path/of/your/choosing # or run prman -statsconfig thisfile.ini scene.rib version 0.1 # Stats processing log level. # Range is 0 (none) to 5 (debug output). Default is 3 (warnings) logLevel 3 # Session configuration [Session] name "Telemetry Session" liveStatsEnabled 1 # List of listeners which the session should create and manage. [ManagedListeners] [Listener] type "telemetry" name "Telemetry Listener" outputFilename "telemetry_report.csv" streamToConsole 1 onlyReportChanges 1 [MetricRules] # Sample raytracing "numRays" metrics 4x a second [Rule] regexp "/rman/raytracing.*numRays" samplingInterval 250 # Sample process memory and time once a second [Rule] regexp "/system.processMemory|/system.processTime" samplingInterval 1000
Output Example
prman -statsconfig telemetry_stats.ini scene.rib
SAMPLE elapsed: 0.558336s name: /rman/raytracing.numRays payload: [0] SAMPLE elapsed: 0.558336s name: /rman/raytracing/camera.numRays payload: [0] SAMPLE elapsed: 0.558336s name: /rman/raytracing/transmission.numRays payload: [0] SAMPLE elapsed: 0.558336s name: /rman/raytracing/photon.numRays payload: [0] SAMPLE elapsed: 0.805461s name: /rman/raytracing.numRays payload: [325156] SAMPLE elapsed: 0.805765s name: /rman/raytracing/camera.numRays payload: [70656] SAMPLE elapsed: 0.805765s name: /rman/raytracing/transmission.numRays payload: [64883] SAMPLE elapsed: 1.06023s name: /rman/raytracing.numRays payload: [1152606] SAMPLE elapsed: 1.06023s name: /rman/raytracing/camera.numRays payload: [215808] SAMPLE elapsed: 1.06023s name: /rman/raytracing/transmission.numRays payload: [325353] SAMPLE elapsed: 1.30261s name: /rman/raytracing/light.numRays payload: [649675] SAMPLE elapsed: 1.30261s name: /rman/raytracing/indirect.numRays payload: [371417] SAMPLE elapsed: 1.30261s name: /system.processMemory payload: [[4457680, 6422528, 389931008]] SAMPLE elapsed: 1.30261s name: /system.processTime payload: [[4.07387, 0.254927, 420.485]] ...