It’s Friday afternoon and the management asked you to create a quick chart illustrating your team’s bug handling pipeline. Easy-peasy. Step 1 – extract data from the Squash-A-Bug system Status Count New 4268 Under Review 1921 Planned 516 Completed 229 Step 2 – visualize it as a small dashboard: That…. does not… look… good… (tried […]
Tip #1145: Tracing in Azure Functions MkIII
This never ends. Shortly after I finished writing about tracing in Azure Functions, I found Daryl “Always Raising” LaBar explaining how to use ExtendedOrganizationService wrapper to easily capture everything in your plugin: Wouldn’t it be nice for debugging if your plugins automatically traced every IOrganzationService Request, along with the parameters and the time that it […]
Tip #1142: Tracing in Azure Functions MkII
When describing tracing in Azure Functions previously, I dropped almost in passing that to capture .NET traces in Azure Functions is easy – just create your own TraceListener. I also added that the code takes a shortcut with log.Info and requires a bit of tuning like mapping logging levels from Connector to TraceWriter but those […]
Tip #755: Logs grow rapidly if audit is enabled on mailbox entity
Be careful when enabling auditing on the Mailbox entity. As Jukka “Kalsarikännit” Niiranen has discovered after analyzing why one of the instance consumed disproportional storage: “It all looked fine at first, but looks like at some point the sync process had started to update the exchangesyncstatexml field with new data every few minutes. [This] field […]
Tip #638: Cryptic entries in audit log
Mini truckstop, the only remarkable thing about it that this time I was on the receiving end. I was helping a customer to get to the bottom of some strange behavior when I noticed this entry in the audit log: What. Is. That?! 10 minutes later after failed boogle-fu, I’ve reached out for help. About […]