Page tree

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

type

string

Must be "telemetry"

y


name

string

Unique name of the listener

y

""

outputFilename

stringThe filename of the final report.y""
streamToConsoleboolSet true for live streaming of metric values to stdoutn0
onlyReportChangesbool

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.

n0

Metric Rules





regexp

string

One or more metrics to be observed. If this is empty no metrics are reported.

n

""

samplingInterval

integer

Sampling interval in MS for the metrics requested in the preceding regexp param.

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.

telemetry_events_stats.ini
# 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.

telemetry_stats.ini
# 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]] 
...