Article ID: 116607, created on Aug 1, 2013, last review on Nov 19, 2014

  • Applies to:
  • Operations Automation


Provider wants to know how long Office 365 subscriptions take to provision on Microsoft side.


Use the Python script to extract data about provisioned subscriptions. It takes the audit log file (or part of it) from the Office 365 Gateway as input (the file with the name 'audit' inside the 'App_Data' folder), and creates CSV file with the following data:

Subscription ID; Offer ID; Time when subscription was ordered with Microsoft; Time when callback about successful provisioning was received

The example of the script output:

subId; offer; ordered; provisioned
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee; 1017D7F3-6D7F-4bfa-BDD8-79BC8F104E0C; 2013-03-22 16:15:54; 2013-03-22 16:36:56

This data can be imported into Excel or any other tool and be used for generating statistics. For instance, the following code in R language reads the script's output and generates a plot for E3 subscriptions provisioning times in April 2013:

provtimes <- read.csv2(file="/Users/admin/Documents/audit/provtimes.csv", sep=";", dec=".")
provtimes$ordered <- strptime(provtimes$ordered, "%Y-%m-%d %H:%M:%S")
provtimes$provisioned <- strptime(provtimes$provisioned, "%Y-%m-%d %H:%M:%S")
provtimes$diff = provtimes$provisioned - provtimes$ordered
provtimes_E3_May <- provtimes[ which(provtimes$offer=='1017D7F3-6D7F-4bfa-BDD8-79BC8F104E0C' & provtimes$ordered > as.POSIXct('2013-04-01') & provtimes$ordered < as.POSIXct('2013-05-01')),]
provtimes_E3_May <- provtimes_E3_May[order(provtimes_E3_May$ordered),]
plot(provtimes_E3_May$ordered,provtimes_E3_May$diff, main = 'Provisioning times for E3 subscriptions in April 2013', xlab = 'Time when subscription was ordered', ylab = 'Time till provisioned')

See the example of the generated plot:

Your text to link here...

5356b422f65bdad1c3e9edca5d74a1ae caea8340e2d186a540518d08602aa065 e12cea1d47a3125d335d68e6d4e15e07

Email subscription for changes to this article
Save as PDF