Skip to content

gpeacock/telemetry-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

telemetry-utils

Tools to complement Flash's Telemetry feature.

add-opt-in.py

Adds the EnableTelemetry tag to a SWF file for use with Adobe Scout.

Run this script on your SWF to make it generate advanced telemetry, which is needed for the ActionScript Sampler, Stage3D Recording, and other features.

This script is provided as a last resort. If possible, you should compile your application with the -advanced-telemetry option.

Setup

  1. You need Python. I've tested 2.6.1 (Mac) and ActivePython 2.7.2 (Win).
  2. For LZMA-compressed SWFs, you need pylzma.

Usage

    ./add-opt-in.py swf_file [password]

If password is provided, advanced telemetry will only be visible if a matching password is entered in Adobe Scout.

telemetry.py

This is a tool for generating reports from .flm files captured via telemetry. Flm files may be captured using Adobe Scout or with the included flmserv.py script.

Various reports can be generated by using options. Reports print to stdout. By default only a summary report is generated. Use -f to get reports on all frames.

Usage

Usage: python telemetry.py [options]

Options:
  -h, --help            show this help message and exit
  -f, --frames          generate report for all frames
  -s, --summary         show individual metrics summary
  -a, --all             show all metrics
  -m, --memory          show Memory Stats
  -d, --dump            generate amf3 hex dump while parsing
  -l, --load=#          filter out frames with load < #
  --range=RANGE         set range of frames (RANGE = start:end)

Sample Report

Here is an example of the default report.

Report for: ../flm/myfile.flm
Date = 2012-04-23 22:55:34.280000
Swf Name = myfile.swf
SWF Rate = 23.0 fps
Telemetry version = 1,1
Startup Time =  0:00:00.684330
Metric Count = 152574
Frame Count = 1225
Render Count = 2846
Run Time =  0:00:53.498891
Time in Player =  0:00:14.685750
Load = 27.45%
Frame FPS = 22.91
Render RPS = 53.22
Most time by Category:
Rendering: 9682.891 66%
ActionScript: 2391.428 16%
Player: 2318.862 16%
Telemetry: 259.446 2%

flmserv.py

This is a simple TCP service that can be used to capture .flm files from the flash runtime. To use, simply run this script. Files will be saved in a .flm folder relative to where flmsrv.py is executed.

Note, Flash must first be configured to have telemetry enabled. This is done by creating a .telemetry.cfg file in the users home folder and adding the line: TelemetryAddress = localhost

echo "TelemetryAddress=localhost" > ~/.telemetry.cfg

There are other settings you can configure in .telemetry.cfg and the location of the file may change depending on your browser or operating system. For more details on setting up .telemetry.cfg see "remote profiling" under: adobe-scout-getting-started

Also note that Adobe Scout conflicts with flmserv.py, you cannot run both at the same time since they set up a service on the same port. Adobe Scout will replace or delete the .telemetry.cfg file, but modifying this file manually will not impact Scout settings.

Usage

 python flmserv.py [options]

Options:
  -h, --help   show this help message and exit
  -q, --quiet  don't print status messages to stdout

amf3reader.py

This is a generic library for reading amf3 formatted data into python. Telemetry.py uses this to parse the amf3 files. It can also be used standalone to convert amf3 files (or .flm files) into JSON text data.

Usage

  python amf3reader.py filename [filename]...
	Where filename is a .flm file (or any amf3 formatted data)

About

simple amf3 parser in Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages