RegisterObserver() public method

public RegisterObserver ( IObservable observable ) : void
observable IObservable
return void
Example #1
0
        static public TelemetryPipe CollectETWEvents(this TelemetryPipe pipe, IEnumerable <ETWProvider> providers, Dictionary <string, string> additionalProperties = null, bool isFilteringOnlyOwnProcess = true)
        {
            var pid = Process.GetCurrentProcess().Id;

            pipe.RegisterObserver(ObservableEventListener
                                  .FromTraceEvent(providers.Select(x => x.Name).ToArray())
                                  .Where(ev => !isFilteringOnlyOwnProcess || ev.ProcessID == pid)
                                  .Select(ev => new TelemetryEvent()
            {
                Type            = "event",
                Data            = FromTraceEvent(ev, additionalProperties),
                PublishDateTime = ev.TimeStamp
            }));

            return(pipe);
        }
Example #2
0
        static public TelemetryPipe CollectEventSourceEvents(this TelemetryPipe pipe, IEnumerable <ETWProvider> providers, Dictionary <string, string> additionalProperties = null)
        {
            foreach (var provider in providers)
            {
                pipe.RegisterObserver(ObservableEventListener
                                      .FromEventSource(provider.Name, provider.Level)
                                      .Select(ev => new TelemetryEvent()
                {
                    Type            = "event",
                    Data            = FromEventSourceEvent(ev, additionalProperties),
                    PublishDateTime = DateTime.UtcNow
                }));
            }


            return(pipe);
        }
Example #3
0
        static public TelemetryPipe CollectMetricsNet(this TelemetryPipe pipe, int reportingPeriodSec, Dictionary <string, string> additionalProperties = null, bool resetOnReport = false)
        {
            pipe.RegisterObserver(new MetricNetInput(reportingPeriodSec, additionalProperties, resetOnReport).Stream);

            return(pipe);
        }