---
title: "Telemetry"
canonical: "https://rmanwiki-25.pixar.com/space/REN25/20416496/Telemetry"
format: markdown
---
Stream metric data to a file and/or to the console.

### Description

An advanced "print" listener outputting a CSV report with optional live data streamed to the console.

### 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` | `string` | The filename of the final report. | y | "" |
| `streamToConsole` | `bool` | Set true for live streaming of metric values to stdout | n | 0 |
| 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:

<sup>    $VAR</sup>  
<sup>    ${VAR} </sup>  
<sup>    ${VAR:-fallback} </sup>  
<sup>    ${VAR:=fallback}</sup>

### Configuration Example

Enable streaming telemetry output with final CSV report written to: `telemetry_report.csv`. Report all of the "numRays" metrics, sampling 4x per second, and report process memory and time once per second.

##### **telemetry_stats.ini**

```java
[Listener]
    type "telemetry"
    name "telemetryListener"
    outputFilename "telemetry_report.csv"
	streamToConsole 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`

```xml
METRIC {"/rman/raytracing.numRays": 123280}
METRIC {"/rman/raytracing/camera.numRays": 49536}
METRIC {"/rman/raytracing/transmission.numRays": 47213}
METRIC {"/rman/raytracing/photon.numRays": 0}
METRIC {"/rman/raytracing/light.numRays": 33870}
METRIC {"/rman/raytracing/indirect.numRays": 2464}
METRIC {"/rman/raytracing.numRays": 3012270}
METRIC {"/rman/raytracing/camera.numRays": 255488}
METRIC {"/rman/raytracing/transmission.numRays": 1409183}
METRIC {"/rman/raytracing/photon.numRays": 0}
METRIC {"/rman/raytracing/light.numRays": 1200027}
METRIC {"/rman/raytracing/indirect.numRays": 147703}
METRIC {"/rman/raytracing.numRays": 9161961}
METRIC {"/rman/raytracing/camera.numRays": 857448}
METRIC {"/rman/raytracing/transmission.numRays": 4216917}
METRIC {"/rman/raytracing/photon.numRays": 0}
METRIC {"/rman/raytracing/light.numRays": 3638169}
METRIC {"/rman/raytracing/indirect.numRays": 453493}
METRIC {"/system.processMemory": [3003166720, 485937152, 486612992]}
METRIC {"/system.processTime": [12.66, 0.71, 1331.42]}
METRIC {"/rman/raytracing.numRays": 15209955}
METRIC {"/rman/raytracing/camera.numRays": 1450911}
METRIC {"/rman/raytracing/transmission.numRays": 6969106}
METRIC {"/rman/raytracing/photon.numRays": 0}
METRIC {"/rman/raytracing/light.numRays": 6035551}
METRIC {"/rman/raytracing/indirect.numRays": 754633}
METRIC {"/rman/raytracing.numRays": 21381282}
METRIC {"/rman/raytracing/camera.numRays": 1818799}
METRIC {"/rman/raytracing/transmission.numRays": 9990314}
METRIC {"/rman/raytracing/photon.numRays": 0}
METRIC {"/rman/raytracing/light.numRays": 8511363}
METRIC {"/rman/raytracing/indirect.numRays": 1062842}
METRIC {"/rman/raytracing.numRays": 27563680}
METRIC {"/rman/raytracing/camera.numRays": 2144142}
METRIC {"/rman/raytracing/transmission.numRays": 13056810}
METRIC {"/rman/raytracing/photon.numRays": 0}
METRIC {"/rman/raytracing/light.numRays": 10987975}
METRIC {"/rman/raytracing/indirect.numRays": 1374753}
METRIC {"/rman/raytracing.numRays": 33584953}
METRIC {"/rman/raytracing/camera.numRays": 2455721}
METRIC {"/rman/raytracing/transmission.numRays": 16061479}
METRIC {"/rman/raytracing/photon.numRays": 0}
METRIC {"/rman/raytracing/light.numRays": 13391247}
METRIC {"/rman/raytracing/indirect.numRays": 1676756}
METRIC {"/rman/raytracing/light.numRays": 13417487}
METRIC {"/system.processTime": [12.66, 0.71, 1331.42]}
METRIC {"/system.processMemory": [3003166720, 485937152, 486612992]}
METRIC {"/rman/raytracing.numRays": 33623962}
METRIC {"/rman/raytracing/indirect.numRays": 1681043}
METRIC {"/rman/raytracing/camera.numRays": 2455721}
METRIC {"/rman/raytracing/transmission.numRays": 16069711}
METRIC {"/rman/raytracing/photon.numRays": 0}

```