/// <summary> /// Flattens Extension object on ITelemetry if exists into the properties and measurements. /// </summary> internal static void FlattenIExtensionIfExists(this ITelemetry telemetry) { if (telemetry.Extension != null) { ISupportProperties itemWithProperties = telemetry as ISupportProperties; ISupportMetrics itemWithMetrics = telemetry as ISupportMetrics; // Do not serialize if data cannot be stored on the item if (itemWithProperties != null || itemWithMetrics != null) { DictionarySerializationWriter extensionSerializationWriter = new DictionarySerializationWriter(); telemetry.Extension.Serialize(extensionSerializationWriter); if (itemWithProperties != null) { Utils.CopyDictionary(extensionSerializationWriter.AccumulatedDictionary, itemWithProperties.Properties); } if (itemWithMetrics != null) { Utils.CopyDictionary(extensionSerializationWriter.AccumulatedMeasurements, itemWithMetrics.Metrics); } } } }
private void SetMetrics(ISupportMetrics telemetry, string key, double value) { key = _telemetryKeyCache.GetProcessedKey(key); if (!telemetry.Metrics.ContainsKey(key)) { telemetry.Metrics.Add(key, value); } }