public AspNetCoreHostingObserver(IMetricsObserverOptions options, IStats stats, ILogger <AspNetCoreHostingObserver> logger) : base(OBSERVER_NAME, DIAGNOSTIC_NAME, options, stats, logger) { PathMatcher = new Regex(options.IngressIgnorePattern); _responseTimeMeasure = Meter.CreateDoubleMeasure("http.server.requests.seconds"); _serverCountMeasure = Meter.CreateInt64Counter("http.server.requests.count"); /* * //var view = View.Create( * // ViewName.Create("http.server.request.time"), * // "Total request time", * // responseTimeMeasure, * // Distribution.Create(BucketBoundaries.Create(new List<double>() { 0.0, 1.0, 5.0, 10.0, 100.0 })), * // new List<ITagKey>() { statusTagKey, exceptionTagKey, methodTagKey, uriTagKey }); * * //ViewManager.RegisterView(view); * * //view = View.Create( * // ViewName.Create("http.server.request.count"), * // "Total request counts", * // serverCountMeasure, * // Sum.Create(), * // new List<ITagKey>() { statusTagKey, exceptionTagKey, methodTagKey, uriTagKey }); * * //ViewManager.RegisterView(view); */ }
public HttpClientCoreObserver(IMetricsObserverOptions options, IStats stats, ILogger <HttpClientCoreObserver> logger) : base(OBSERVER_NAME, DIAGNOSTIC_NAME, options, stats, logger) { PathMatcher = new Regex(options.EgressIgnorePattern); _clientTimeMeasure = Meter.CreateDoubleMeasure("http.client.request.time"); _clientCountMeasure = Meter.CreateInt64Measure("http.client.request.count"); /* TODO: figureout bound instruments & view API * var view = View.Create( * ViewName.Create("http.client.request.time"), * "Total request time", * clientTimeMeasure, * Distribution.Create(BucketBoundaries.Create(new List<double>() { 0.0, 1.0, 5.0, 10.0, 100.0 })), * new List<ITagKey>() { statusTagKey, uriTagKey, methodTagKey, clientTagKey }); * ViewManager.RegisterView(view); * * view = View.Create( * ViewName.Create("http.client.request.count"), * "Total request counts", * clientCountMeasure, * Sum.Create(), * new List<ITagKey>() { statusTagKey, uriTagKey, methodTagKey, clientTagKey }); * * ViewManager.RegisterView(view); */ }
public GCEventsListener(IStats stats, ILogger <EventSourceListener> logger = null) : base(stats) { _logger = logger; _memoryUsed = Meter.CreateInt64Measure("clr.memory.used"); _collectionCount = Meter.CreateInt64Measure("clr.gc.collections"); }
public MdmMeasureMetricWrapper(string monitoringAccount, string metricNamespace, string metricName, List<string> dimensionNames, bool addDefaultDimensions) { this.MetricName = metricName; this.dimensionNames = dimensionNames?.ToArray() ?? new string[0]; var errorContext = default(ErrorContext); // this.wrappedMeasureMetric = MeasureMetric.Create(monitoringAccount, metricNamespace, metricName, ref errorContext, addDefaultDimensions, this.dimensionNames); // mofied by jin this.wrappedMeasureMetric = MeasureMetric.Create(monitoringAccount, metricNamespace, metricName, ref errorContext, addDefaultDimensions, this.dimensionNames); }
public OpenTelemetryCollectorLogger(MeterProvider meterProvider, string metricsPrefix = "magiconion", string version = null, IEnumerable <KeyValuePair <string, string> > defaultLabels = null) { if (meterProvider == null) { throw new ArgumentNullException(nameof(meterProvider)); } // configure defaultTags included as default tag this.defaultLabels = defaultLabels ?? Array.Empty <KeyValuePair <string, string> >(); // todo: how to description? var meter = meterProvider.GetMeter("MagicOnion", version); // Service build time. ms buildServiceDefinitionMeasure = meter.CreateDoubleMeasure($"{metricsPrefix}_buildservicedefinition_duration_milliseconds"); // sum // Unary request count. num unaryRequestCounter = meter.CreateInt64Counter($"{metricsPrefix}_unary_requests_count"); // sum // Unary API request size. bytes unaryRequestSizeMeasure = meter.CreateInt64Measure($"{metricsPrefix}_unary_request_size"); // sum // Unary API response size. bytes unaryResponseSizeMeasure = meter.CreateInt64Measure($"{metricsPrefix}_unary_response_size"); // sum // Unary API error Count. num unaryErrorCounter = meter.CreateInt64Counter($"{metricsPrefix}_unary_error_count"); // sum // Unary API elapsed time. ms unaryElapsedMeasure = meter.CreateDoubleMeasure($"{metricsPrefix}_unary_elapsed_milliseconds"); // sum // StreamingHub error Count. num streamingHubErrorCounter = meter.CreateInt64Counter($"{metricsPrefix}_streaminghub_error_count"); // sum // StreamingHub elapsed time. ms streamingHubElapsedMeasure = meter.CreateDoubleMeasure($"{metricsPrefix}_streaminghub_elapsed_milliseconds"); // sum // StreamingHub request count. num streamingHubRequestCounter = meter.CreateInt64Counter($"{metricsPrefix}_streaminghub_requests_count"); // sum // StreamingHub request size. bytes streamingHubRequestSizeMeasure = meter.CreateInt64Measure($"{metricsPrefix}_streaminghub_request_size"); // sum // StreamingHub response size. bytes streamingHubResponseSizeMeasure = meter.CreateInt64Measure($"{metricsPrefix}_streaminghub_response_size"); // sum // ConnectCount - DisconnectCount = current connect count. (successfully disconnected) // StreamingHub connect count. num streamingHubConnectCounter = meter.CreateInt64Counter($"{metricsPrefix}_streaminghub_connect_count"); // sum // StreamingHub disconnect count. num streamingHubDisconnectCounter = meter.CreateInt64Counter($"{metricsPrefix}_streaminghub_disconnect_count"); // sum // HubBroadcast request count. num broadcastRequestCounter = meter.CreateInt64Counter($"{metricsPrefix}_broadcast_requests_count"); // sum // HubBroadcast request size. num broadcastRequestSizeMeasure = meter.CreateInt64Measure($"{metricsPrefix}_broadcast_request_size"); // sum // HubBroadcast group count. num broadcastGroupCounter = meter.CreateInt64Counter($"{metricsPrefix}_broadcast_group_count"); // sum }
public CLRRuntimeObserver(IMetricsObserverOptions options, IStats stats, ILogger <CLRRuntimeObserver> logger) : base(OBSERVER_NAME, DIAGNOSTIC_NAME, options, stats, logger) { _memoryUsed = Meter.CreateInt64Measure("clr.memory.used"); _collectionCount = Meter.CreateInt64Measure("clr.gc.collections"); _activeThreads = Meter.CreateInt64Measure("clr.threadpool.active"); _availThreads = Meter.CreateInt64Measure("clr.threadpool.avail"); // TODO: Pending View API // memoryTagValues = Tagger.CurrentBuilder.Put(memoryAreaKey, heapArea).Build(); // threadPoolWorkerTagValues = Tagger.CurrentBuilder.Put(threadKindKey, threadPoolWorkerKind).Build(); // threadPoolCompPortTagValues = Tagger.CurrentBuilder.Put(threadKindKey, threadPoolComppKind).Build(); // RegisterViews(); }
public static MetricLogger Create( Context context, string?monitoringAccount, string logicalNameSpace, string metricName, bool addDefaultDimensions, IEnumerable <Dimension> dimensions) { if (string.IsNullOrEmpty(monitoringAccount)) { return(NoOpMetricLogger.Instance); } // For some reason the generic MeasureMetric class does not work with 0 dimensions. There is a special // class (MeasureMetric0D) that does metrics without any dimensions. var dimensionNames = dimensions.Select(d => d.Name).ToArray(); Tracer.Debug(context, $"Initializing Mdm logger {logicalNameSpace}:{metricName}"); var error = new ErrorContext(); MeasureMetric? measureMetric = null; MeasureMetric0D?measureMetric0D = null; // Very important not to forget to pass true for addDefaultDimension argument since the default is false. if (dimensionNames.Length > 0) { measureMetric = MeasureMetric.Create(monitoringAccount, logicalNameSpace, metricName, ref error, addDefaultDimension: addDefaultDimensions, dimensionNames); } else { measureMetric0D = MeasureMetric0D.Create(monitoringAccount, logicalNameSpace, metricName, ref error, addDefaultDimension: addDefaultDimensions); } if (error.ErrorCode != 0) { Tracer.Error(context, $"Fail to create MeasureMetric. {logicalNameSpace}:{metricName} ErrorCode: {error.ErrorCode} ErrorMessage: {error.ErrorMessage}. Metrics would be disabled!"); return(NoOpMetricLogger.Instance); } return(new WindowsMetricLogger(context, logicalNameSpace, metricName, measureMetric, measureMetric0D)); }
public OpenTelemetryCollectorLogger(MeterFactory meterFactory, string version = null, IEnumerable <KeyValuePair <string, string> > defaultLabels = null) { if (meterFactory == null) { throw new ArgumentNullException(nameof(meterFactory)); } // configure defaultTags included as default tag this.defaultLabels = defaultLabels ?? Array.Empty <KeyValuePair <string, string> >(); // todo: how to description? var meter = meterFactory.GetMeter("MagicOnion", version); // Service build time. ms buildServiceDefinitionMeasure = meter.CreateDoubleMeasure("MagicOnion/measure/BuildServiceDefinition"); // sum // Unary request count. num unaryRequestCounter = meter.CreateInt64Counter("MagicOnion/measure/UnaryRequest"); // sum // Unary API response size. bytes unaryResponseSizeMeasure = meter.CreateInt64Measure("MagicOnion/measure/UnaryResponseSize"); // sum // Unary API error Count. num unaryErrorCounter = meter.CreateInt64Counter("MagicOnion/measure/UnaryErrorCount"); // sum // Unary API elapsed time. ms unaryElapsedMeasure = meter.CreateDoubleMeasure("MagicOnion/measure/UnaryElapsed"); // sum // StreamingHub API error Count. num streamingHubErrorCounter = meter.CreateInt64Counter("MagicOnion/measure/StreamingHubErrorCount"); // sum // StreamingHub API elapsed time. ms streamingHubElapsedMeasure = meter.CreateDoubleMeasure("MagicOnion/measure/StreamingHubElapsed"); // sum // StreamingHub request count. num streamingHubRequestCounter = meter.CreateInt64Counter("MagicOnion/measure/StreamingHubRequest"); // sum // StreamingHub API response size. bytes streamingHubResponseSizeMeasure = meter.CreateInt64Measure("MagicOnion/measure/StreamingHubResponseSize"); // sum // ConnectCount - DisconnectCount = current connect count. (successfully disconnected) // StreamingHub connect count. num streamingHubConnectCounter = meter.CreateInt64Counter("MagicOnion/measure/StreamingHubConnect"); // sum // StreamingHub disconnect count. num streamingHubDisconnectCounter = meter.CreateInt64Counter("MagicOnion/measure/StreamingHubDisconnect"); // sum }
public ThreadPoolEventsListener(IStats stats, ILogger <EventSourceListener> logger = null) : base(stats) { _logger = logger; _availableThreads = Meter.CreateInt64Measure($"clr.threadpool.available"); }