i'm using Microsoft's SqmApi.dll
library to add telemetry to an application. e.g.:
ISQM sqm = new Sqm("ContosoGrobber");
sqm.Increment(FileOpen, 1);
sqm.SetIfMax(QueryTime, stopWatch.Interval);
...
sqm.CloseSession(System.IO.Path.GetTempPath());
And now i have a .sqm
file ready for me to WebRequest
back to my web-server:
Now all i need is a way to crack open the guts inside the file:
ContosoGrobber00.sqm
:
MSQMx šwD €Ÿ¨¡•æÌp¿Ÿ¤•æÌˆºX¦Ô|NÕï'CðÆÏ g
Has anyone figured out the undocumented internal format used by every Microsoft product created in the last 8 years?
It's obviously not Base64 encoded, so presumably compressed.
Bonus Reading
- The Microsoft Customer Experience Improvement Program
- Microsoft Open Specifications - Corporate Customer Experience Improvement Program Client-to-Server Protocol Specification
- Channel 9 interview about Software Quality Metrics (SQM) with Partha Sundaram
Bonus Chatter
The Microsoft Customer Experience Improvement Program–Part 2
for privacy reasons Microsoft doesn’t share any details in public about the SQM file format. The SQM file basically contains header data and Datapoints.