Telemetry Monitor

Component to monitor the executions of all our products in a standardized way.

Goals:

  • Allow creating knowledge and answering questions about our product executions:

    • When are they used

    • Which versions of which products

    • By whom

    • Where in the world

    • With which licenses

    • Get basic metrics about the code

    • What are the obtained results

    • What errors are experienced

    • How fast are the conversions

    • How the UI is utilized

    • Other

  • Provide a mechanism to visualize and query the resulting data

  • Persist the data to answer historical questions

IControllerMonitor

Simple interface to report high-level events from the Controller. Each of these events might trigger one or more event/metrics message to the telemetry server.

public interface IControllerMonitor : IDisposable
{
    void ReportRequestExecutionEvent(string executionId, CodeProcessorDescriptor codeProcessorDescriptor);
    void ReportStartExecutionEvent(string executionId);
    void ReportExecutionFinishedEvent(string executionId, float time, Exception exception = null);
    void ReportLicenseValidationEvent(string executionId, bool successfulValidation, string message);
    void ReportParametersValidationEvent(string executionId, bool validation, string executionMode, Dictionary<string, string> additionalParameters, string errorMessage = null);
    void ReportCodeMetricsEvent(string executionId, CodeDescriptor codeDescriptor);
    void ReportErrorEvent(string executionId, Exception e, string details = null);
}

Actual Messages

Under Construction...

Application Insights

Under Construction...

Last updated